This page is part of a static HTML representation of the TiddlyWiki at http://tiddlywiki.com/

4th February 2016 at 10:53pm

Interesting article giving the perspective of someone who has been away from TiddlyWiki for a few years:

http://www.networkworld.com/article/3028098/open-source-tools/tiddlywiki-a-free-open-source-wiki-revisited.html

Way back in the mists of time (actually, January 2009) I wrote about a really cool tool called TiddlyWiki, a “non-linear personal web notebook”. Fast forward to today and I just had an out of body experience: Completely by accident I found a TiddlyWiki that I started when I wrote that piece and it still works!

Finding code that works flawlessly after just two or three years is magical enough but after seven years?! And given that TiddlyWiki is written as a single page Web application and considering how different browsers are now than they were in 2009, the fact that the old version of TiddlyWiki still works is not short of miraculous.

"A Thesis Notebook" by Alberto Molina

2nd March 2013 at 8:45am

A thesis notebook based on TiddlyWiki.

http://tesis.tiddlyspot.com/

This is an example of a thesis notebook powered by TiddlyWiki 5.0.8-beta.

TiddlyWiki is a great piece of software created by Jeremy Ruston. It allows you, among other things, to take notes, organize ideas, store information, and display all your stuff the way you want. It is an incredibly flexible tool you can adapt to fit almost all your needs.

This TiddlyWiki has been customized to serve as a philosophy notebook centered around authors, books and papers, concepts and theories, and personal notes. I use it along with Zotero, which is a dedicated bibliography software. Both are free, open source projects. TiddlyWiki can be downloaded at http://tiddlywiki.com.

"BJTools" by buggyj

21st March 2014 at 8:45am

buggyj has created several useful plugins, including a WYSIWYG HTML editor, a configurable calendar and tag lists with draggable ordering.

http://bjtools.tiddlyspot.com

"BrainTest - tools for a digital brain" by Danielo Rodriguez

21st March 2014 at 8:45am

A collection of customisations and macros from Danielo Rodriguez.

http://braintest.tiddlyspot.com/

This is my personal tiddlywiki file for testing.

Here I will post the tools and Macros that I develop for this awesome tool. That way, all the help the comunity gave me can came back to the comunity again.

"CouchDB Adaptor" by William Shallum

27th September 2014 at 4:59pm

An adaptor to enable TiddlyWiki to sync changes with a CouchDB database.

https://github.com/wshallum/couchadaptor

CouchDB sync adaptor for TiddlyWiki 5. Requires TiddlyWiki >= 5.1.2.

Works in limited testing. Not sure how well it handles conflicts.

"Creating a baby journal with TiddlyWiki 5" from A Penguin in Redmond

20th February 2014 at 8:45am

A guide to creating a baby journal with TiddlyWiki.

http://a-penguin-in-redmond.blogspot.co.uk/2014/02/creating-baby-journal-with-tiddlywiki-5.html

Keeping a journal about your baby is fun. It allows you to keep track of those events in your baby's life and development that are most important to you, and to tell them in your own words. [...]

There are plenty of online services that can help to keep such a diary, but you need to have an internet connection to access them, and you have to trust them to keep your data safe.

"Encrypt single tiddler plugin" by Danielo Rodriguez

2nd June 2015 at 9:45am

A plugin that allows to encrypt your tiddlers individually Danielo Rodriguez.

http://danielorodriguez.com/TW5-EncryptTiddlerPlugin/

Advantages:

  • You can specify a different password for each tiddler if you want.
  • You don't have to encrypt your whole wiky.
  • If you forget your password, you only lose a tiddler.
  • It's possible to edit the tiddler content , tags and fields except the encrypt field after encryption.
  • [...]

"GSD5" by Roma Hicks

30th December 2014 at 6:29pm

An adaptation of the TiddlyWiki powered GTD® system formerly known as MonkeyGTD for TiddlyWiki version 5.

http://gsd5.tiddlyspot.com/

GSD5 is a Getting-Thing-Done tool for TiddlyWiki5 based off the mGSD classic TiddlyWiki.

"Heeg.ru" by sini-Kit

15th December 2014 at 5:40pm

A guide in Russian to creating an online shop with TiddlyWiki. No serverside code is needed, instead orders are handled by Disqus.

http://heeg.ru/

"In My Socks" by Jed Carty

22nd November 2014 at 9:38am

An extensive collection of hints and tips from Jed Carty.

http://inmysocks.tiddlyspot.com

I made this so that some of my friends with absolutely no coding experience could use some of the better features of TW5 without having to learn much. I am hopefully going to continue updating it as I learn new things. There isn't really anything here that isn't available in plenty of other places, but I figured that since I spent a while putting it together and people keep saying that TW needs more documentation I would post it here.

"Install and run TiddlyWiki on a CentOS 6 VPS using Nginx" from RoseHosting

12th March 2014 at 8:45am

A step by step guide to running TiddlyWiki on a CentOS Virtual Private Server.

http://www.rosehosting.com/blog/install-and-run-tiddlywiki-on-a-centoos-6-vps-using-nginx/

In this tutorial we will guide you through the steps of installing and running TiddlyWiki on a CentOS 6 VPS.

We will also install and configure Nginx as a reverse proxy, so you can run TiddlyWiki behind Nginx.

"Mal's Sandbox" by Mal

1st May 2016 at 2:19pm

A collection of extensions by @malgam

http://malsandbox.tiddlyspot.com

The "loadnew" plugin provides the JavaScript module $:/plugins/malgam/loadnew/loadnew.js that implements an incremental load command for Tiddlywiki 5.

The javascript code is based on the built-in module $:/core/modules/commands/load.js that loads tiddlers from a Tiddlywiki file into a node.js Tiddlywiki instance. This command loads all non-system tiddlers, irrespective of whether they have been modified since last loaded. As a result, all tiddlers in the node.js tiddlers folder will end up with a new modification date.

In contrast, the loadnew command only loads tiddlers that either don't already exist in the tiddlers folder, or have a newer modified date than the existing tiddler.

With a backup strategy that uses a file system snapshot process to preserve historical versions of tiddlers, the loadnew command minimises the sizes of the resulting snapshots.

"Microblogging con Tiddlywiki" by Juan

8th October 2014 at 2:43pm

A Spanish guide to using TiddlyWiki on Android.

http://3palmeras.wordpress.com/2014/11/05/microblogging-con-tiddlywiki/

Tiddlywiki software is prodigious based on javascript which is capable of holding a notepad that can be edited with Internet Explorer or function as a full blog, contained in a single file.

Translation by Google Translate

"Notizen mit TiddlyWiki systemübergreifend nutzen" by Michael Sonntag

10th September 2014 at 11:28am

A quick guide to using TiddlyWiki (written in German)

http://michaelsonntag.net/notizen-mit-tiddlywiki-systemuebergreifend-nutzen

Those using multiple different computer platforms (if only PC and Android) knows for certain: You would like to sync notes across computers and thereby be independent of any apps or services. I am concerned at any rate so and so I am constantly looking for the perfect solution.

With TiddlyWiki I found it mostly. As the name suggests, it TiddlyWiki is a Wikisystem. In contrast to all other wikis, TiddlyWiki is a single HTML file that runs in the browser and thus can be used on all modern operating systems. And because there is only one file, it can be very easily via the well-known cloud services (Dropbox, Google Drive, ownCloud) or synchronized with FTP or used on a USB stick.

(Translation from German by Google Translate)

"PETTIL - Forth for the Commodore PET" by Charlie Hitselberger

16th July 2014 at 9:45am

A fast Forth interpreter for the Commodore PET, written in 6502 assembly language. The TiddlyWiki containing program documentation is automatically generated from the source code: see https://github.com/chitselb/pettil.

http://chitselb.com/files/tiddlypettil.html

Objectives of the project are, in no particular order:

  • make a Forth that runs on my Commodore PET 2001
  • have fun
  • improve my "6502 assembly golf" skills
  • find other people who are interested in this project

"Setting Up a Personal TiddlyWiki Server on OS X" by Kris Johnson

3rd April 2015 at 11:42am

Detailed description of setting up TiddlyWiki on Node.js on OS X.

http://undefinedvalue.com/2015/04/02/setting-personal-tiddlywiki-server-os-x

For a new job, I decided to set up a personal wiki to keep notes. I wanted to keep it simple, meeting these requirements:

  • All the data is in a Dropbox folder (so it can be automatically synced between machines)
  • It must support Markdown syntax

After looking at the options, I settled on TiddlyWiki. I've used "classic TiddlyWiki" before, and liked its simplicity, but I was always a little annoyed with the weird steps you have to go through to save changes. The new version of TiddlyWiki includes support for running it as a real HTTP server, so you can use it just like an online wiki.

But it took me a couple of hours to figure out how to set that up. The TiddlyWiki documentation is not clear ("not clear" is a euphemistic way of saying "terrible"). So, I've written up these instructions in the hope it will spare somebody else all the frustration I had.

"Shining Ark Using TiddlyWiki" by Helu

7th September 2013 at 9:45am

A gamers guide to using TiddlyWiki.

http://helugame.wordpress.com/2013/09/07/shining-ark-7-using-tiddlywiki/

I’ve been using TiddlyWiki for this game mainly to record the monsters’ locations and the items that they drop. This is so that when I need a certain item to upgrade/create weapons, I can quickly look it up; which monsters drop it and which quests have those monsters.

As I play the game, as I encounter new information, I just input them into my Shining Ark TiddlyWiki. It’s like I’m building a wiki from scratch. The reason why I don’t just use online wikis is that 1) it’s too easy to get spoiled and 2) sometimes online wikis provide too much information (who cares about the non-gameplay related descriptions that can be found in the game, etc).

"SK Plugins" by Stephen Kimmel

5th May 2016 at 7:09pm

A collection of plugins by Stephen Kimmel, including a number of additional editor toolbar buttons.

http://skplugins.tiddlyspot.com/

In keeping with the general spirit of the TiddlyWiki community, ie, you develop something useful and/or potentially interesting you share it with others, I'm sharing some of the plugins I've developed to go with the new Editor Toolbar. You'll find them and a more extensive discussion of what each does at http://skplugins.tiddlyspot.com/

"TB5 - a pocket full of tips" by Tobias Beer

21st March 2014 at 8:45am

A collection of tips from Tobias Beer

http://tb5.tiddlyspot.com/

A collection of references and sandbox for testing concepts around TiddlyWiki 5...

"TiddlyWiki 5 im Betatest" by besim

5th January 2014 at 8:45am

Reaction to TiddlyWiki5 from the translator of the German edition of TiddlyWikiClassic.

http://blog.netplanet.org/2014/01/03/tiddlywiki-5-im-betatest/

There is little software that can still inspire me so even after years, as on the first day. This includes TiddlyWiki, the "pocket-wiki". The latter is because the Wiki completely fits into an HTML file, and this HTML file brings everything - JavaScript program logic, CSS appearance and the entire Wiki content as stored records. So a TiddlyWiki file is then sometimes happy times some megabytes in size, but just has the unbeatable advantage that it works just as fast file created locally in a variety of browsers.

(Translation from German by Google Translate)

"TiddlyWiki for Scholars" by Alberto Molina

20th July 2014 at 9:45am

An early release of an edition of TiddlyWiki customised for rigorous, academic notetaking.

http://tw5.scholars.tiddlyspot.com/

TiddlyWiki for Scholars is a personal customization of TiddlyWiki 5.0.13-beta I made for note-taking from readings, but it can be useful for other purposes. The idea behind this adaptation is to show and to allow creating relevant data related to the current tiddler without leaving the tiddler.

"TiddlyWiki guide FR" by Sylvain Naudin

31st October 2014 at 9:02pm

A collection of tips and guides in French, introduced by this blog post:

http://sylvain.naud.in/post/2014/10/29/Ressources-pour-TiddlyWiki-5-%28FR%29

Ce guide de prise en main de TiddlyWiki vous permettra de débuter sur ce logiciel : rédiger du texte avec la syntaxe wiki, insérer des images, créer des Tiddler, faire une recherche, ajouter des fonctionnalités, et bien d'autres choses.. Bonne lecture ! Sylvain

"TiddlyWiki Notes" by James Anderson

27th March 2014 at 8:45am

Notes and tips by a developer working on writing TiddlyWiki plugins – including TWExe, a widget for running Windows scripts and executables.

http://welford.github.io

"TiddlyWiki Posts" by Jeffrey Kishner

29th January 2014 at 8:45am

A collection of articles covering integration with Fargo, Font Awesome and Google Calendar, and tips for managing task lists.

http://blog.jeffreykishner.com/tiddlywiki/

I have become a regular user of TiddlyWiki and have become so accustomed to using Font Awesome icons in Fargo that I wanted to incorporate the icons into my wikis as well.

"TiddlyWiki 舞" by Bram Chen

22nd March 2014 at 8:45am

A translation of the tiddlywiki.com documentation from Bram Chen, TiddlyWiki's Chinese translator.

http://tw5-zh.tiddlyspot.com

"TiddlyWiki" by Sander de Boer

27th November 2014 at 4:32pm

Dutch blog post about TiddlyWiki

https://breinbout.wordpress.com/2014/11/26/tiddlywiki/

I'm allergic to websites that are highly dependent on JavaScript. I think that JavaScript has many useful applications to add functionality to a site, but content needs to be visible if JavaScript is switched off. I use the NoScript extension for Firefox and surf with pleasure over the Internet without spontaneous things happen that I do not give permission. I love JavaScript on a short leash. More crazier maybe I'm so excited about TiddlyWiki.

(Translation from Dutch by Google Translate)

"TiddlyWiki5 Bourbon" by mkt_memory

20th October 2014 at 8:27am

An extensive collection of tips and resources for users of TiddlyWiki in Japanese.

http://bacchus.ivory.ne.jp/bourbon/

TiddlyWikiをHTML5にしたTiddlyWiki5が正式にリリースされました。このTiddlyWiki5の使い方について、自分で試した機能を中心に解説します。

TiddlyWiki5は、非常に多機能なローカルWikiです。このブログに書いてあることは、TiddlyWiki5で出来ることのごく一部です。

"TiddlyWiki5 Coding" by Chris Hunt

21st March 2014 at 8:45am

Chris Hunt's detailed developer tutorials for getting started with writing widgets for TiddlyWiki.

http://cjhunt.github.io/

These pages document aspects TiddlyWiki5 programming, sharing "lessons learned" to help developers to get started with TiddlyWiki5 customization and extension.

There are currently two articles in this wiki:

  • A Simple Widget
  • A More Complex Widget

"TiddlyWiki5 Playground" by Ton Gerner

21st March 2014 at 8:45am

Huge collection of customisations and tweaks from Ton Gerner.

http://tongerner.tiddlyspot.com/

I am a longtime user of TiddlyWiki Classic and still use it daily since you can't do everything in TiddlyWiki 5 (yet) ;)

I started experimenting with TW5 at the end of September 2013 (alpha10). Since I missed a few things in the layout I got used to in TiddlyWiki Classic 1, I started with modifying the layout of TW5. To share my knowledge, I made a few guides about these 'modifications'. The guides started as a non-linear personal web notebook (yeah, the subtitle of TiddlyWiki!). I started experimenting with layout things and used TW5 to document my experiments.

"TiddlyWiki5^2 documenting while learning TiddlyWiki5" by Iannis Zannos

9th October 2014 at 6:07pm

A wealth of hints, tips and notes about using TiddlyWiki on Node.js:

http://larigot.avarts.ionio.gr/users/iani/wikis/tw5square.html

TiddlyWiki is different from other wikis because of its principle of dynamically customizeable "storyline" based on tiddlers as basic units of information. That is, the user "composes" their own version of the webpage by clicking on tiddler links, which add tiddlers to the page in order to compose a storyline.

The Node.js implementation in TiddlyWiki5 adds all the advantages of flat-file markup language based type of site. This makes TiddlyWiki an excellent alternative to flat-file based CMS/webpage/blog authoring systems for the web.

Also very cool is the treatment of tags as menus everywhere.

"TW5 Magick" by Stephan Hradek

21st March 2014 at 8:45am

Stephan Hradek's growing catalogue of tips, tutorials, and other resources. Stephan has also developed several plugins and macros that you can find at http://tiddlystuff.tiddlyspot.com/.

http://tw5magick.tiddlyspot.com/

Some things in TiddlyWiki seem like Magic. As my preferred nick is Skeeve, I felt that TW5 Magick is a proper name for this collection of some of the "magic" tricks one can do with TiddlyWiki.

"TW5 Mall" by David Gifford

21st March 2014 at 8:45am

Dave Gifford's growing catalogue of tips and tutorials.

http://www.giffmex.org/tw5mall.htm

TiddlyWiki 5 is a great tool for note-taking, bookmarking, blogging, organizing to do lists, writing books, and more. But many of the things that can be done in TiddlyWiki 5 are often hidden to the new user, either because the user doesn't know about it or because the user doesn't know how to do it. TW5 mall is a modest catalog of hacks where you can discover new tricks in TiddlyWiki 5 and also find out in layman's terms how to implement them.

"TW5 Tribal Knowledge" from Scott Kingery

21st March 2014 at 8:45am

Tips and guides for using TiddlyWiki.

http://dl.dropboxusercontent.com/u/118970/wiki/tw5tribalknowledge.html

I never used Node.js until a couple weeks ago when I wanted to try a TW5 installation on Node and expand my knowledge a bit. I figured someone else may be in the same boat so I wrote it all down

"TW5-TeXZilla" plugin by Joe Renes

6th February 2015 at 5:03pm

An alternative LaTeX plugin for TiddlyWiki5. It supports a wider set of LaTeX commands than KaTeX, though not as extensive as MathJax

http://tw5-texzilla.tiddlyspot.com

This plugin provides LaTeX support in TiddlyWiki5, using the TeXZilla latex parser to generate MathML.

Only Firefox and Safari support MathML at the moment, so the plugin is only useful if you're using one of these browsers. It might be possible to combine this plugin with MathJax to convert MathML to something that other browsers can understand, e.g. HTML+CSS, but I haven't tried this.

"TWeb.at" by Mario Pietsch

10th April 2014 at 11:31am

A collection of TiddlyWiki resources from Mario Pietsch, with a focus on cloud deployments. Mario also maintains the German translation of TiddlyWiki.

https://tweb.at

My name is Mario Pietsch from Austria. I'm living near Salzburg.

This page, will be the portal to my TiddlyWiki, TiddlyWeb related content.

"Un wiki sur votre BiblioBox avec TiddlyWiki" from A Penguin in Redmond

16th July 2014 at 9:45am

A guide (in French) to using TiddlyWiki on the BiblioBox, a variation of the PirateBox mobile communication and file sharing system.

http://bibliobox.net/blog/post/2014/07/16/un-wiki-sur-votre-bibliobox-avec-tiddlywiki

I've known TiddlyWiki since its beginning in 2004. For personal or professional needs, I used it regularly for notepad staff in 2007 and 2012. But I admit I ignored the tool during the past two years. And then I said yesterday: but why not put TiddlyWiki on a BiblioBox? Because it is a single HTML file with javascript. In addition I knew the existence of a server version for saving online amendments.

Hand optimised from a translation by Google Translate

"Wills Q&D gTD" by Matabele

5th May 2014 at 9:54am

Matabele's stylish and clean system for personal task management.

http://wills.tiddlyspot.com

This is my work in progress version of TW5, incorporating various features and ideas as and when they intrigue me. To grab any feature you may wish to try, drag the listed tiddlers across to the dropzone of an empty TiddlyWiki 5.0.10-beta

"デザイン刷新。次の25年を目指すTiddlyWiki" by Moongift

11th November 2013 at 8:45am

A Gentle Guide to TiddlyWiki

26th September 2015 at 6:10pm

TiddlyWiki is an incredibly flexible and versatile tool that is conceived and constructed differently than most software. This can make it hard to understand until the moment when it clicks, and becomes a seamless extension of your brain.

Starting with the basics, TiddlyWiki is a note-taking web application you can download for free, store wherever you like and customise however you wish. Use it to capture, organise and share your notes in ways that word processors and other note-taking tools cannot.

TiddlyWiki is designed to be non-linear, structuring content with stories, tags, hyperlinks, and other features. You can organise and retrieve your notes in ways that conform to your personal thought patterns, rather than feel chained to one preset organisational structure.

You can use TiddlyWiki as a single file that you view and edit through any web browser, whether you are online or offline. Or you can use it as a powerful Node.js application that stores each of your notes as a separate file.

How can you make TiddlyWiki work for you? We recommend you start with our introductory documentation listed below, and then browse the TableOfContents, available in the Contents tab in the sidebar. Or just follow our simple instructions and try it out for yourself!

Also see TiddlyWiki Video Tutorials by Francis Meetze

About

16th September 2014 at 2:20pm

Ace Editor Plugin by Joerg Plewe

3rd April 2015 at 12:10pm

A plugin to integrate the Ace editor into TiddlyWiki.

http://innoq.tiddlyspot.com

Being quite new to TW5 development I tried my best to draft a SyncAdaptor to store tiddlers in IndexedDb. This is quite useful if an application / plugin installation is not possible (we have quite some restrictions at work...).

Acknowledgements

12th September 2014 at 3:51pm

TiddlyWiki wouldn't be possible without the ongoing support of the TiddlyWiki Community. Their attention and feedback has made it possible to gain an understanding of what is wanted from the product, and their passion for it has taught me that it is worth the investment.

TiddlyWiki incorporates code from these fine OpenSource projects:

And media from these projects:

ActionDeleteFieldWidget

20th February 2015 at 4:20pm

Introduction

The action-deletefield widget is an action widget that deletes specified fields of a tiddler. ActionWidgets are used within triggering widgets such as the ButtonWidget.

Content and Attributes

The action-deletefield widget is invisible. Any content within it is ignored.

AttributeDescription
$tiddlerThe title of the tiddler whose fields are to be modified (if not provided defaults to the current tiddler
$fieldOptional name of a field to delete
{any attributes not starting with $}Each attribute name specifies a field to be deleted. The attribute value is ignored and need not be specified

Examples

Here is an example of a button that deletes the caption and tags fields of the current tiddler:

<$button>
<$action-deletefield caption tags/>
Delete "caption" and "tags"
</$button>

That renders as:

Here is an example of a button that deletes the modified date and tags fields of the tiddler HelloThere:

<$button>
<$action-deletefield $tiddler="HelloThere" modified tags/>
Delete "modified" and "tags" from ~HelloThere
</$button>

That renders as:

Here is an example of a button that uses the optional $field attribute to delete the text field of the tiddler HelloThere:

<$button>
<$action-deletefield $tiddler="HelloThere" $field="text"/>
Delete text from ~HelloThere
</$button>

That renders as:

ActionDeleteTiddlerWidget

6th November 2014 at 5:34pm

Introduction

The action-deletetiddler widget is an action widget that deletes tiddlers. ActionWidgets are used within triggering widgets such as the ButtonWidget.

There are several differences compared to the WidgetMessage: tm-delete-tiddler:

  • The user is not prompted to confirm the deletion
  • No automatic updating of the story list
  • No special handling of draft tiddlers

Content and Attributes

The action-deletetiddler widget is invisible. Any content within it is ignored.

AttributeDescription
$tiddlerOptional title of the tiddler to be deleted
$filterOptional filter identifying tiddlers to be deleted

Examples

Here is an example of a button that deletes the tiddler HelloThere:

<$button>
<$action-deletetiddler $tiddler="HelloThere"/>
Delete "~HelloThere"
</$button>

That renders as:

Here is an example of a button that deletes all tiddlers tagged TableOfContents:

<$button>
<$action-deletetiddler $filter="[tag[TableOfContents]]"/>
Delete tiddlers tagged "~TableOfContents"
</$button>

That renders as:

ActionListopsWidget

28th December 2015 at 8:33am

Introduction

The action-listops widget is an action widget that manipulates user lists in any field or data index. ActionWidgets are used within triggering widgets such as the ButtonWidget.

Content and Attributes

The action-listops widget is invisible. Any content within it is ignored.

AttributeDescription
$tiddlerThe title of the tiddler whose lists are to be modified (if not provided defaults to the current tiddler
$fieldThe name of a field to be manipulated as a list (defaults to 'list')
$indexOptional index of a property in a data tiddler index to be manipulated as a list
$filterAn optional filter expression, the output of which will be saved to the field/index being manipulated
$subfilterAn optional subfilter expression, which takes the list being manipulated as input, and saves the modified list back to the field/index being manipulated
$tagsAn optional subfilter expression, which takes the 'tags' field of the target tiddler as input, and saves the modified list of tags back to the 'tags' field

Extended Filter Operators

A number of extended filter operators are necessary for the manipulation of lists. These operators have been designed primarily for use in subfilter expressions whereby the modified current list is returned in place of the current list.

Listops Operators
Operator Purpose
allafter discard all items except those after the marker
allbefore discard all items except those before the marker
append append a range of items from an array to the list
move move marker N places in the list
prepend prepend a range of items from an array to the list
putafter move N trailing items after the marker
putbefore move N trailing items before the marker
putfirst move N trailing items to the head of the list
putlast move N leading items to the tail of the list
remove remove a range of items in an array from the current list
replace replace marker with N trailing items
sortby sort the current list in the order of the list referenced in the operand

Examples

In this example we shall populate and then clear a list in an ordinary field (myfield) of this tiddler (the default.)

<$button>
<$action-listops $field="myfield" $subfilter="efg hlm pqr"/>
Populate 'myfield'
</$button>
<$button>
<$action-listops $field="myfield" $subfilter="abc xyz"/>
Append More Items
</$button>
<$button>
<$action-listops $field="myfield" $subfilter="-abc -hlm"/>
Remove Items
</$button>
<$button>
<$action-listops $field="myfield" $filter="[[]]"/>
Clear 'myfield'
</$button>

<$list filter="[list[!!myfield]]">

</$list>

That renders as:


In this example we shall append and remove items from a list in an ordinary field (myfield) of this tiddler (the default) and sort the resultant list. We shall then remove some of the appended items and sort the resulting list in reverse order.

<$button>
<$action-listops $field="myfield" $subfilter="-efg ijk xyz [[this is a title]] +[sort[]]"/>
Mangle List
</$button>
<$button>
<$action-listops $field="myfield" $subfilter="-xyz -[[this is a title]] +[!sort[]]"/>
Unmangle List
</$button>

<$list filter="[list[!!myfield]]">

</$list>

That renders as:


In this example we shall append a few tags to the 'tags' field of this tiddler (the default.) We shall then remove some of the appended tags.

<$button>
<$action-listops $tags="+[append{Days of the Week!!short}] $:/tag1 $:/tag2 $:/tag3"/>
Populate 'tags'
</$button>
<$button>
<$action-listops $tags="+[!remove:2{!!tags}]"/>
Remove Last Two Tags
</$button>
<$button>
<$action-listops $tags="+[!prefix[$:/]]"/>
Remove System Tags
</$button>
<$button>
<$action-listops $tags="-Mon -Tue"/>
Remove Mon and Tue
</$button>
<$button>
<$action-listops $tags="+[prefix[$:/]] ActionWidgets Widgets"/>
Remove User Tags
</$button>
<$button>
<$action-listops $tags="+[[]] ActionWidgets Widgets"/>
Clear Tags
</$button>

<$list filter="[list[!!tags]]">

</$list>

That renders as:

ActionWidgets
Widgets

ActionNavigateWidget

20th February 2015 at 4:20pm

Introduction

The action-navigate widget is an action widget that sends a tm-navigate message back up the widget tree. ActionWidgets are used within triggering widgets such as the ButtonWidget.

Content and Attributes

The action-navigate widget is invisible. Any content within it is ignored.

AttributeDescription
$toThe title of the target tiddler for the navigation (if not provided defaults to the current tiddler
$scrollOptional parameter determining whether the navigation will also cause a scroll to the target tiddler (see below)

Scroll handling

The optional $scroll attribute can be set to "yes" to force scrolling to occur to bring the target tiddler into view. If set to "no" then scrolling does not occur. If the $scroll attribute is omitted then scrolling occurs unless either:

  • the control key is pressed
  • the action was initiated with the middle mouse button (if available)

Note that if navigating to multiple tiddlers at once you should use the same $scroll setting for all of them.

Examples

Here is an example of button that navigates to two different tiddlers at once:

<$button>
<$action-navigate $to="ButtonWidget"/>
<$action-navigate $to="ActionWidgets"/>
Click me!
</$button>

That renders as:

ActionSendMessageWidget

18th May 2015 at 10:09pm

Introduction

The action-sendmessage widget is an action widget that sends a message back up the widget tree. ActionWidgets are used within triggering widgets such as the ButtonWidget.

Content and Attributes

The action-sendmessage widget is invisible. Any content within it is ignored.

AttributeDescription
$messageThe message to send (eg, WidgetMessage: tm-new-tiddler)
$paramOptional parameter string whose meaning is dependent on the message being sent
$nameOptional name of additional parameter
$valueValue for optional parameter whose name is specified in $name
{any attributes not starting with $}Multiple additional, optional named parameters that are attached to the message

Examples

Here is an example of button that displays both a notification and a wizard, and creates a new tiddler with tags and text:

<$button>
<$action-sendmessage $message="tm-modal" $param="SampleWizard"/>
<$action-sendmessage $message="tm-notify" $param="SampleNotification"/>
<$action-sendmessage $message="tm-new-tiddler" title="This is newly created tiddler" tags="OneTag [[Another Tag]]" text=<<now "Today is DDth, MMM YYYY">>/>
Click me!
</$button>

That renders as:

ActionSetFieldWidget

6th August 2015 at 6:14pm

Introduction

The action-setfield widget is an action widget that assigns values to the fields of a tiddler. ActionWidgets are used within triggering widgets such as the ButtonWidget.

Content and Attributes

The action-setfield widget is invisible. Any content within it is ignored.

AttributeDescription
$tiddlerThe title of the tiddler whose fields are to be modified (if not provided defaults to the current tiddler
$fieldOptional name of a field to be assigned the $value attribute
$indexOptional index of a property in a data tiddler to be assigned the $value attribute
$valueThe value to be assigned to the field or index identified by the $field or $index attribute. If neither is specified then the value is assigned to the text field. If no value is specified, $field or $index will be deleted.
$timestampSpecifies whether the timestamp(s) of the target tiddler will be updated (modified and modifier, plus created and creator for newly created tiddlers). Can be "yes" (the default) or "no"
{any attributes not starting with $}Each attribute name specifies a field to be modified with the attribute value providing the value to assign to the field

Examples

Here is an example of a pair of buttons that open the control panel directly to specified tabs. They work by using action-setfield to set the state tiddler for the control panel tabs.

<$button>
<$action-setfield $tiddler="$:/state/tab-1749438307" text="$:/core/ui/ControlPanel/Appearance"/>
<$action-navigate $to="$:/ControlPanel"/>
Go to Control Panel "Appearance" tab
</$button>

<$button>
<$action-setfield $tiddler="$:/state/tab-1749438307" text="$:/core/ui/ControlPanel/Settings"/>
<$action-navigate $to="$:/ControlPanel"/>
Go to Control Panel "Settings" tab
</$button>

That renders as:

Here is an example of a button that assigns tags and fields to the tiddler HelloThere, and then navigates to it and opens the tiddler info panel on the "Fields" tab:

<$button>
<$action-setfield $tiddler="HelloThere" tags="NewTag [[Another New Tag]]" color="red"/>
<$action-setfield $tiddler="$:/state/popup/tiddler-info--1779055697" text="(568,1443,33,39)"/>
<$action-setfield $tiddler="$:/state/tab--1890574033" text="$:/core/ui/TiddlerInfo/Fields"/>
<$action-navigate $to="HelloThere"/>
Modify ~HelloThere
</$button>

That renders as:

Here is an example of a button that assigns tags and fields to the tiddler HelloThere, and then initiates editing it:

<$button>
<$action-setfield $tiddler="HelloThere" tags="MoreTag [[Further More Tags]]" color="green"/>
<$action-sendmessage $message="tm-edit-tiddler" $param="HelloThere"/>
Edit ~HelloThere
</$button>

That renders as:

Here is an example of a button that opens the control panel directly to the "Appearance" tabs:

<$button>
<$action-setfield $tiddler="$:/state/tab-1749438307" $field="text" $value="$:/core/ui/ControlPanel/Appearance"/>
<$action-navigate $to="$:/ControlPanel"/>
Go to Control Panel "Appearance" tab
</$button>

That renders as:

ActionWidgets

29th April 2016 at 5:52pm

Action widgets are a special type of widget that have no visual appearance but perform an action when triggered (such as sending a message, navigating to a tiddler, or changing the value of a tiddler). Action widgets are used in association with other widgets that trigger those actions (for example, the ButtonWidget).

The following action widgets are provided:

There are two ways to use action widgets:

  • Using the actions attribute of the triggering widget (this is the preferred way)
  • Embedding the actions within the triggering widget (an older technique that is now deprecated)

Assigning action widgets with the actions attribute

The action widgets are passed as a string to the actions attribute of the triggering widget. Usually, it is more convenient to use a macro to assign the action widgets to a variable. For example, here is a button that triggers two actions of sending different messages:

\define my-actions()
<$action-sendmessage $message="tm-home"/>
<$action-sendmessage $message="tm-full-screen"/>
\end

<$button actions=<<my-actions>>>
Click me!
</$button>

Assigning action widgets by embedding

The action widgets need not be immediate children of their triggering widget, but they must be descendents of it. The actions are performed in sequence. Here is the above example rewritten to use embedding:

<$button>
<$action-sendmessage $message="tm-home"/>
<$action-sendmessage $message="tm-full-screen"/>
Click me!
</$button>

Adding a Table of Contents to the Sidebar

8th June 2016 at 1:27pm

A customisable table of contents can be added to the sidebar with the following steps:

  1. Create a tiddler called TableOfContents
  2. Give it the tag $:/tags/SideBar
  3. Set the text to
    
    <div class="tc-table-of-contents">
    
    <<toc-selective-expandable 'TableOfContents'>>
    
    </div>
  4. Add a caption field with the text Contents
  5. Add a list-after field with the text $:/core/ui/SideBar/Open

Add entries to the table of contents by creating tiddlers tagged TableOfContents. An easy way is to choose </g> new here from the tiddler toolbar. To create sub-entries, tag them with the name of the parent entry.

Adding a Twitter Follow button

19th September 2014 at 5:15pm

Here's a macro that provides a Twitter Follow button for a particular username:

\define twitterFollowButton(username)
<iframe allowtransparency="true" frameborder="0" scrolling="no" src="//platform.twitter.com/widgets/follow_button.html?screen_name=$username$" style="width:300px; height:20px;"></iframe>
\end

The only change from the version published at https://dev.twitter.com/docs/follow-button is that new lines have been removed.

Note that the src URL is given without a protocol (ie "http" or "https"). It's done this way so that it works on sites whether they are hosted on a HTTP or HTTPS domain. If you want the Twitter button to work while using a TiddlyWiki offline on a "file://" URL, then you'll need to manually add the protocol. For example:

<iframe allowtransparency="true" frameborder="0" scrolling="no" src="http://platform.twitter.com/widgets/follow_button.html?screen_name=jermolene" style="width:300px; height:20px;"></iframe>

Adding Babel Polyfill to TiddlyWiki

12th January 2016 at 5:50pm

Not all browsers support the latest features of ES2015. The Babel project offers a polyfill that can be included into your TiddlyWiki so those features can be available to your plugins. To do this you will need a copy of the polyfill source.

You can obtain the source either through npm or downloaded/saved. See the Babel Polyfill documentation for specific information on installing it.

In your TiddlyWiki editions folder make sure you have a plugins/babel-polyfill folder. Then create the plugins/babel-polyfill/plugin.info file with the following in it:

{
  "title": "$:/plugins/babel/babel-polyfill",
  "description": "Babel Polyfills for ES2015 support",
  "author": "Your Name Here",
  "core-version": ">=5.0.0"
}

Create the folder plugins/babel-polyfill/files folder. Then create the plugins/babel-polyfill/files/tiddlywiki.files file with the following in it:

{
  "tiddlers": [
    {
      "file": "polyfill.min.js",
      "fields": {
        "title": "$:/plugins/babel/babel-polyfill/polyfill.min.js",
        "type": "application/javascript",
        "module-type": "library",
        "global-module": "true"
      }
    }
  ]
}

Now copy the polyfill.min.js you downloaded/saved.

If you downloaded this via npm then it would be available in ./node_modules/babel-polyfill/dist/polyfill.min.js.

Lastly you need a initializer so create the plugins/babel-polyfill/plugin.js file with the following in it:

/*\
title: $:/plugins/babel/babel-polyfill/plugin.js
type: application/javascript
module-type: startup

Load the babel-polyfill library on startup

\*/

exports.startup = function() {
  $tw.modules.execute('$:/plugins/babel/babel-polyfill/polyfill.min.js');
}

Because the polyfill is meant to be used in the browser we need to conditionally load the library which ES2016 doesn't allow. This is why it is written using TiddlyWiki's dependency resolver instead of using ES2015 import statements.

Now all the runtime ES2015 features are available like using Promise in your plugin code.

See Using ES2016 for Writing Plugins on how to use the ES2015 syntax for your plugin code.

addprefix Operator

3rd February 2015 at 6:18pm
purposeextend each input title with a prefix
inputa selection of titles
parameterS = a string of characters
outputthe input, but with S added to the start of each title

addprefix Operator (Examples)

18th January 2015 at 6:31pm

Cat Garden [[Favourite Armchair]] +[addprefix[My ]]

addsuffix Operator

3rd February 2015 at 6:32pm
purposeextend each input title with a suffix
inputa selection of titles
parameterS = a string of characters
outputthe input, but with S added to the end of each title

addsuffix Operator (Examples)

18th January 2015 at 6:31pm

[[London]addsuffix[ Underground]]

Adopt a Titles Policy

12th September 2014 at 4:01pm

As the structures within your TiddlyWiki documents get more complex it can be hard to keep the titles of tiddlers consistent. For example, should terms be defined in the plural or the singular? Camel case or separate words?

Recording a formal titling policy can help to reduce confusion. For example, the titling policies for this wiki are recorded in the Documentation Style Guide.

SystemTiddler Titles

A useful convention is to use the prefix $:/_ for any system tiddlers that you create to ensure that they are near the top of the system tiddler listing in the sidebar

after Operator

3rd February 2015 at 6:32pm
purposefind which input title follows a specified one
inputa selection of titles
parameterT = one of those titles
outputthe title that immediately follows T in the input

If T is not present in the input, or is the last title there, then the output is empty.

Examples

after Operator (Examples)

18th January 2015 at 6:31pm

These examples make use of the Days of the Week tiddler. The Thursday tiddler shows a further example.

[list[Days of the Week]after[Monday]]

[list[Days of the Week]after[Sunday]]

AlertMechanism

6th June 2016 at 1:59pm

Alerts are displayed as yellow boxes overlaying the main TiddlyWiki window. Each one corresponds to a tiddler with the tag $:/tags/Alert. Clicking the delete icon on an alert deletes the corresponding tiddler.

Here's a demo .

Alert tiddlers should have the following fields:

FieldDescription
titleBy default, alert titles have the prefix $:/temp/alerts/
textThe text of the alert message
modifiedDate of the alert (used for ordering the alerts on screen)
componentComponent name associated with the alert
tagsMust include $:/tags/Alert

Alice in Wonderland

all Operator

20th February 2015 at 4:09pm
purposefind all titles of a fundamental category
inputignored, unless the parameter is empty
parameterzero or more categories
outputthe titles that belong to all the specified categories

The parameter specifies zero or more fundamental categories using the following syntax:

missingcurrentorphansshadowstiddlers+
CategoryMembersSorted
currentjust the current tiddler
missingall non-existent tiddlers to which there is at least one hard linkno
orphansall tiddlers to which there are no hard linksby title
shadowsall the shadow tiddlers that exist, including any that have been overridden with non-shadow tiddlersno
tiddlersall the non-shadow tiddlers that existno

If the parameter specifies more than one category, they are processed from left to right. The overall output is initially empty, and each category's output is dominantly appended to it in turn. Unrecognised categories contribute nothing to the output.

As a special case, if the parameter is empty, the output is simply a copy of the input. This can be useful when the parameter is soft.

The is operator is similar, but its scope is restricted to its input.

Examples

all Operator (Examples)

18th January 2015 at 6:31pm

[all[shadows]]

[all[shadows+tiddlers]]

[all[tiddlers+shadows]]

[all[orphans+missing+current]]

[all[current]]

[all[current]tag[Operator Examples]]

[all[current]tag[Recipes]]

Monday Thursday +[all[]]

allafter Operator

8th November 2015 at 5:15am
purposediscard all items except those after the marker
inputa list of items
suffixspecifying a suffix ('include') will include the marker in the output
parametermarker = the list item to be used as a marker
outputall items after the marker

allafter Operator (Examples)

8th November 2015 at 8:05am

These examples make use of the Days of the Week tiddler.

[list[Days of the Week]] +[allafter[Wednesday]]

[list[Days of the Week]] +[allafter:include[Wednesday]]

allbefore Operator

8th November 2015 at 5:15am
purposediscard all items except those before the marker
inputa list of items
suffixspecifying a suffix ('include') will include the marker in the output
parametermarker = the list item to be used as a marker
outputall items before the marker

allbefore Operator (Examples)

8th November 2015 at 5:14am

These examples make use of the Days of the Week tiddler.

[list[Days of the Week]allbefore[Wednesday]]

[list[Days of the Week]allbefore:include[Wednesday]]

AllTiddlers

25th February 2014 at 9:19pm

Current tiddlers:

"A free, open source wiki revisited" by Mark Gibbs, NetworkWorld
"A Thesis Notebook" by Alberto Molina
"BJTools" by buggyj
"BrainTest - tools for a digital brain" by Danielo Rodriguez
"CouchDB Adaptor" by William Shallum
"Creating a baby journal with TiddlyWiki 5" from A Penguin in Redmond
"Encrypt single tiddler plugin" by Danielo Rodriguez
"GSD5" by Roma Hicks
"Heeg.ru" by sini-Kit
"In My Socks" by Jed Carty
"Install and run TiddlyWiki on a CentOS 6 VPS using Nginx" from RoseHosting
"Mal's Sandbox" by Mal
"Microblogging con Tiddlywiki" by Juan
"Notizen mit TiddlyWiki systemübergreifend nutzen" by Michael Sonntag
"PETTIL - Forth for the Commodore PET" by Charlie Hitselberger
"Setting Up a Personal TiddlyWiki Server on OS X" by Kris Johnson
"Shining Ark Using TiddlyWiki" by Helu
"SK Plugins" by Stephen Kimmel
"TB5 - a pocket full of tips" by Tobias Beer
"TiddlyWiki 5 im Betatest" by besim
"TiddlyWiki for Scholars" by Alberto Molina
"TiddlyWiki guide FR" by Sylvain Naudin
"TiddlyWiki Notes" by James Anderson
"TiddlyWiki Posts" by Jeffrey Kishner
"TiddlyWiki 舞" by Bram Chen
"TiddlyWiki" by Sander de Boer
"TiddlyWiki5 Bourbon" by mkt_memory
"TiddlyWiki5 Coding" by Chris Hunt
"TiddlyWiki5 Playground" by Ton Gerner
"TiddlyWiki5^2 documenting while learning TiddlyWiki5" by Iannis Zannos
"TW5 Magick" by Stephan Hradek
"TW5 Mall" by David Gifford
"TW5 Tribal Knowledge" from Scott Kingery
"TW5-TeXZilla" plugin by Joe Renes
"TWeb.at" by Mario Pietsch
"Un wiki sur votre BiblioBox avec TiddlyWiki" from A Penguin in Redmond
"Wills Q&D gTD" by Matabele
"デザイン刷新。次の25年を目指すTiddlyWiki" by Moongift
A Gentle Guide to TiddlyWiki
About
Ace Editor Plugin by Joerg Plewe
Acknowledgements
ActionDeleteFieldWidget
ActionDeleteTiddlerWidget
ActionListopsWidget
ActionNavigateWidget
ActionSendMessageWidget
ActionSetFieldWidget
ActionWidgets
Adding a Table of Contents to the Sidebar
Adding a Twitter Follow button
Adding Babel Polyfill to TiddlyWiki
addprefix Operator
addprefix Operator (Examples)
addsuffix Operator
addsuffix Operator (Examples)
Adopt a Titles Policy
after Operator
after Operator (Examples)
AlertMechanism
Alice in Wonderland
all Operator
all Operator (Examples)
allafter Operator
allafter Operator (Examples)
allbefore Operator
allbefore Operator (Examples)
AllTiddlers
AlphaReleases
append Operator
append Operator (Examples)
Articles
Audio
AutoSave
backlinks Operator
backlinks Operator (Examples)
Base64
before Operator
before Operator (Examples)
BetaReleases
bf Operator
Block Quotes in WikiText
Blog Edition
Blurry Lawn.jpg
BrowserCompatibility
BrowseWidget
BT
BuildCommand
Building TiddlyWikiClassic
butfirst Operator
butlast Operator
butlast Operator (Examples)
ButtonWidget
CamelCase
Caruso - Ave Maria
Cascading Style Sheets
changecount Macro
changecount Macro (Examples)
Changes to filters in 5.0.9-beta
CheckboxWidget
Chinese (Simplified) Edition
Chinese (Traditional) Edition
ClearPasswordCommand
Code Blocks in WikiText
CodeBlockWidget
CodeMirror Plugin
colour Macro
colour Macro (Examples)
colour-picker Macro
colour-picker Macro (Example 1)
colour-picker Macro (Examples)
ColourPalettes
Comma-Separated Values
Commands
commands Operator
commands Operator (Examples)
Community
Compose ballad
Concepts
Configuring the default TiddlerInfo tab
Contents
ContentType
contrastcolour Macro
Contributing
ContributingTemplate
Contributor License Agreement
Contributors
Copying tiddlers between TiddlyWiki files
Core Macros
Core Variables
CountWidget
Creating a custom export format
Creating and editing tiddlers
Creating journal tiddlers
Creating SubStories
csvtiddlers Macro
Current Tiddler
currentTiddler Variable
currentTiddler Variable (Examples)
Customise TiddlyWiki
Customising search results
Customising Tiddler File Naming
D3 Plugin
Dashes in WikiText
Data URI
DataTiddlers
datauri Macro
datauri Macro (Examples)
Date Fields
DateFormat
datepicker plugin based on Pikaday, by kixam
Days of the Week
days Operator
days Operator (Examples)
Definitions
Definitions in WikiText
Deutsch (Deutschland) Edition
Deutsch (Österreich) Edition
Dev Thumbnail.jpg
Developers
DictionaryTiddlers
Discover TiddlyWiki
Document Object Model
Documentation Macros
Documentation Style Guide
Dominant Append
done
DraftMechanism
DropzoneWidget
dumpvariables Macro
dumpvariables Macro (Examples)
each Operator
each Operator (Examples)
eachday Operator
eachday Operator (Examples)
Edición en Castellano
EditBitmapWidget
Editing Tiddlers with Emacs
Editing Tiddlers with Vim
Édition en Français (France)
editiondescription Operator
Editions
editions Operator
EditionsCommand
EditTextWidget
EditWidget
Empty Edition
Encryption
EncryptWidget
EntityWidget
Environment Variables on Node.js
Eucaly's Tiddly World
Example for tag Macro
Example Table of Contents: Expandable
Example Table of Contents: Selectively Expandable
Example Table of Contents: Simple
Example Table of Contents: Sorted Expandable
Example Table of Contents: Tabbed External
Example Table of Contents: Tabbed Internal
Examples
ExternalImages
Features
FederatialLimited
field Operator
field Operator (Examples)
FieldMangler Widget (Examples)
FieldManglerWidget
fields Operator
fields Operator (Examples)
FieldsWidget
Filter Expression
Filter Operators
Filter Parameter
Filter Run
Filter Step
Filter Syntax
Filter Whitespace
Filters
First
first Operator
first Operator (Examples)
FirstOne
FirstThree
FirstTwo
Formatting in WikiText
Formatting text in TiddlyWiki
Forums
Fourth
Friday
Full Edition
Future Proof
Generating Static Sites with TiddlyWiki
get Operator
get Operator (Examples)
Get the Ring
getindex Operator
getindex Operator (Examples)
Getting Started Video
GettingStarted
GettingStarted - Android
GettingStarted - Chrome
GettingStarted - Firefox
GettingStarted - Internet Explorer
GettingStarted - iOS
GettingStarted - Node.js
GettingStarted - Safari
GettingStarted - WebDAV
GitHub
Go to Mordor
GroupedLists
GuerillaWiki
Hard and Soft Links
Hard Linebreaks in WikiText
has Operator
has Operator (Examples)
haschanged Operator
Headings in WikiText
HelloThere
HelloThumbnail
HelloThumbnail - Classic
HelloThumbnail - Developers
HelloThumbnail - Gentle Guide
HelloThumbnail - HelpingTiddlyWiki
HelloThumbnail - Introduction Video
HelloThumbnail - Latest Version
HelloThumbnail - TWEUM2016
HelpCommand
HelpingTiddlyWiki
Hidden Setting: Search AutoFocus
Hidden Setting: Typing Refresh Delay
Hidden Settings
Highlight Plugin
History of TiddlyWiki
HistoryMechanism
Horizontal Rules in WikiText
How to add a banner for GitHub contributions
How to add a new tab to the sidebar
How to apply custom styles by tag
How to build a TiddlyWiki5 from individual tiddlers
How to export tiddlers
How to put the last modification date in a banner
HTML in WikiText
HyperText Markup Language
image-picker Macro
image-picker Macro (Example 1)
image-picker Macro (Example 2)
image-picker Macro (Examples)
ImageGallery Example
Images in WikiText
ImageWidget
ImportTiddlers
ImportVariablesWidget
Improving TiddlyWiki Documentation
IndexedDB Plugin by Andreas Abeck
indexes Operator
indexes Operator (Examples)
InfoMechanism
InfoPanel
InitCommand
Installing a plugin from the plugin library
Installing TiddlyWiki on Node.js
Installing TiddlyWiki Prerelease on Node.js
Instruction Tiddlers
Interactive Git Documentation by Devin Weaver
Introducing TiddlyDesktop Video
Introduction to filter notation
Introduction Video
Introduction Video Thumbnail.jpg
is Operator
is Operator (Examples)
JavaScript
JavaScript Object Notation
JeremyRuston
Jermolene
JSONTiddlers
jsontiddlers Macro
KaTeX Plugin
KeyboardShortcuts
KeyboardWidget
Kill the Dragon
Korean (Korea Republic) Edition
Language Icon: ca-ES
Language Icon: cs-CZ
Language Icon: da-DK
Language Icon: de-AT
Language Icon: de-DE
Language Icon: el-GR
Language Icon: es-ES
Language Icon: fr-FR
Language Icon: hi-IN
Language Icon: ia-IA
Language Icon: it-IT
Language Icon: ja-JP
Language Icon: ko-KR
Language Icon: nl-NL
Language Icon: pa-IN
Language Icon: pt-PT
Language Icon: ru-RU
Language Icon: sk-SK
Language Icon: sv-SE
Language Icon: zh-Hans
Language Icon: zh-Hant
LanguageGallery
Languages
last Operator
last Operator (Examples)
Latest
LazyLoading
Learning
limit Operator
limit Operator (Examples)
lingo Macro
lingo Macro (Examples)
LinkCatcherWidget
Linking in WikiText
links Operator
links Operator (Examples)
LinkWidget
list Operator
list Operator (Examples)
list-links Macro
list-links Macro (Examples)
listed Operator
listed Operator (Examples)
ListField
ListopsData
Lists in WikiText
ListWidget
LoadCommand
Macro Call Syntax
Macro Calls in WikiText
Macro Calls in WikiText (Examples)
Macro Definition Syntax
Macro Definitions in WikiText
Macro Syntax
MacroCallWidget
Macros
Macros in WikiText
Make the beds
makedatauri Macro
makedatauri Macro (Examples)
MakeLibraryCommand
Making curved text with SVG
Manually installing a plugin
Markdown Plugin
MathJax Plugin by Martin Kantor
MathML
Mechanisms
Meetups
Messages
Modals
Modules
modules Operator
modules Operator (Examples)
ModuleType
moduletypes Operator
moduletypes Operator (Examples)
Monday
Motovun Jack.ascii
Motovun Jack.jpg
Motovun Jack.pdf
Motovun Jack.svg
move Operator
move Operator (Examples)
MultiTiddlerFiles
MultiTiddlerFileSyntax
namespace Variable
Naming of System Tiddlers
Navigating between open tiddlers
NavigatorWidget
New Release Banner.png
Newnham Horizon.jpg
next Operator
next Operator (Examples)
node-webkit
Node.js
Notes for upgrading to 5.0.11-beta
Notes for upgrading to 5.0.8-beta
Notifications
now Macro
now Macro (Examples)
nsort Operator
nsort Operator (Examples)
nsortcs Operator
nsortcs Operator (Examples)
nth Operator
nth Operator (Examples)
NW.js
Obadiah TOC
OpenSource
Order of Tagged Tiddlers
Osmosoft
OutputCommand
OXTWIG
Page and tiddler layout customisation
Paragraphs in WikiText
PasswordCommand
PasswordWidget
Percent Encoding
Performance
PerlinLight.jpg
PermaLinks
PESpot Lesson Planner by Patrick Detzner
Philosophy of Tiddlers
Pinstripe.gif
Platforms
Plugin Editions
PluginMechanism
Plugins
Plugins by TheDiveO
plugintiddlers Operator
plugintiddlers Operator (Examples)
PopupMechanism
Pragma
prefix Operator
prefix Operator (Examples)
prepend Operator
prepend Operator (Examples)
Preserving open tiddlers at startup
previous Operator
previous Operator (Examples)
putafter Operator
putafter Operator (Examples)
putbefore Operator
putbefore Operator (Examples)
putfirst Operator
putfirst Operator (Examples)
putlast Operator
putlast Operator (Examples)
qualify Macro
qualify Macro (Examples)
Quine
RadioWidget
Railroad Diagrams
Railroad Plugin
rboue's plugins for TiddlyWiki
ReadMe
ReadMeBinFolder
Reference
Reference Tiddlers
regexp Operator
regexp Operator (Examples)
Release 5.0.0-alpha.11
Release 5.0.0-alpha.12
Release 5.0.0-alpha.13
Release 5.0.0-alpha.14
Release 5.0.0-alpha.15
Release 5.0.0-alpha.16
Release 5.0.0-alpha.17
Release 5.0.1-alpha
Release 5.0.10-beta
Release 5.0.11-beta
Release 5.0.12-beta
Release 5.0.13-beta
Release 5.0.14-beta
Release 5.0.15-beta
Release 5.0.16-beta
Release 5.0.17-beta
Release 5.0.18-beta
Release 5.0.2-beta
Release 5.0.3-beta
Release 5.0.4-beta
Release 5.0.5-beta
Release 5.0.6-beta
Release 5.0.7-beta
Release 5.0.8-beta
Release 5.0.9-beta
Release 5.1.0
Release 5.1.1
Release 5.1.10
Release 5.1.11
Release 5.1.12
Release 5.1.2
Release 5.1.3
Release 5.1.4
Release 5.1.5
Release 5.1.6
Release 5.1.7
Release 5.1.8
Release 5.1.9
Releases
ReleaseTemplate
remove Operator
remove Operator (Examples)
removeprefix Operator
removeprefix Operator (Examples)
removesuffix Operator
removesuffix Operator (Examples)
RenderTiddlerCommand
RenderTiddlersCommand
replace Operator
replace Operator (Examples)
ReportingBugs
resolvepath Macro
resolvepath Macro (Examples)
Resources
rest Operator
rest Operator (Examples)
Résumé Builder Edition
RevealWidget
reverse Operator
reverse Operator (Examples)
RoadMap
SafeMode
sameday Operator
sameday Operator (Examples)
SampleAlert
SampleModal
SampleNotification
SampleTabFour
SampleTabOne
SampleTabThree
SampleTabTwo
sampletag1
sampletag2
SampleTiddlerFirst
SampleTiddlerSecond
SampleTiddlerThird
SampleWizard
SampleWizard2
Saturday
SaveTiddlerCommand
SaveTiddlersCommand
Saving
Saving on a PHP Server
Saving on Android
Saving on InternetExplorer
Saving on iPad/iPhone
Saving on Safari
Saving on TiddlySpot
Saving with the HTML5 fallback saver
Saving with TiddlyFox
Saving with TiddlyFox on Android
Saving with TiddlyIE
SavingMechanism
Scalability
Scripts for TiddlyWiki on Node.js
ScrollableWidget
search Operator
search Operator (Examples)
Searching in TiddlyWiki
Second
SecondOne
SecondThree
SecondThreeOne
SecondThreeThree
SecondThreeTwo
SecondTwo
SeeAlso by Matias Goldman
Selection Constructors
SelectWidget
ServerCommand
Serving TW5 from Android
SetFieldCommand
Setting a favicon
Setting a page background image
SetVariableWidget
SetWidget
shadowsource Operator
shadowsource Operator (Examples)
ShadowTiddlers
Sharing a TiddlyWiki on Dropbox
Sharing your tiddlers with others
Signing the Contributor License Agreement
Simple Zork-like Game by Jed Carty
SingleFileApplication
SinglePageApplication
Some of the things you can do with TiddlyWiki
sort Operator
sort Operator (Examples)
sortby Operator
sortby Operator (Examples)
sortcs Operator
sortcs Operator (Examples)
Spelling
splitbefore Operator
splitbefore Operator (Examples)
Stanford JavaScript Crypto Library
StateMechanism
Story River
storyTiddler Variable
storyTiddler Variable (Examples)
storyviews Operator
storyviews Operator (Examples)
Structuring TiddlyWiki
Styles and Classes in WikiText
Stylesheet Macros
suffix Operator
suffix Operator (Examples)
Sunday
SystemTags
SystemTiddlers
TabbedExampleType
Table-of-Contents Macros
Table-of-Contents Macros (Examples)
TableOfContents
Tables in WikiText
tabs Macro
tabs Macro (Examples)
tag Macro
tag Macro (Examples)
tag Operator
tag Operator (Examples)
Tagging
tagging Operator
tagging Operator (Examples)
tags Operator
tags Operator (Examples)
TagTiddlers
task
TaskManagementExample
Technical Prose Style
TemplateTiddlers
Ten reasons to switch to TiddlyWiki
Text-Slicer Edition
TextReference
TextWidget
The Extended Listops Filters
The First Rule of Using TiddlyWiki
Third
ThirdOne
ThirdThree
ThirdTwo
thumbnail Macro
thumbnail Macro (Examples)
Thursday
Tiddler Fishes.svg
Tiddler Poster.png
Tiddler Structure
Tiddler Title Policy
TiddlerFields
TiddlerFiles
TiddlerLinks
Tiddlers
TiddlerWidget
TiddlyChrome by Arlen Beiler
TiddlyClip by buggyjay
TiddlyDesktop
TiddlyDesktop Release 0.0.1
TiddlyDesktop Release 0.0.2
TiddlyDesktop Release 0.0.3
TiddlyDesktop Release 0.0.4
TiddlyDesktop Release 0.0.5
TiddlyDesktop Release 0.0.6
TiddlyDesktop Release 0.0.7
TiddlyDesktop Release 0.0.8
TiddlyDesktop Releases
TiddlyFox
TiddlyIE
TiddlyMap Plugin by Felix Küppers
TiddlySpace
TiddlyWeb
TiddlyWiki
TiddlyWiki Camp Paris
TiddlyWiki Classic.png
TiddlyWiki European Meetup 2016
TiddlyWiki extensions for Sublime Text 3 by roma0104
TiddlyWiki Hangouts
TiddlyWiki in the Sky for TiddlyWeb
TiddlyWiki Jingle by Måns Mårtensson
TiddlyWiki on Firefox for Android Video
TiddlyWiki on Node.js
TiddlyWiki Releases
TiddlyWiki Video Tutorials by Francis Meetze
TiddlyWiki.mp3
TiddlyWiki2ReadMe
TiddlyWiki5
TiddlyWiki5 Versioning
TiddlyWikiClassic
TiddlyWikiFolders
timeline Macro
timeline Macro (Examples)
Title List
title Operator
title Operator (Examples)
Title Selection
TranscludeWidget
Transclusion
Transclusion and Substitution
Transclusion Basic Usage
Transclusion in WikiText
transclusion Variable
transclusion Variable (Examples)
Transclusion with Templates
Translate TiddlyWiki into your language
TranslationMechanism
TriTarget.org by Devin Weaver
Tuesday
Tutorials
tv-auto-open-on-import Variable
tv-config-toolbar-class Variable
tv-config-toolbar-class Variable (Examples)
tv-config-toolbar-icons Variable
tv-config-toolbar-icons Variable (Examples)
tv-config-toolbar-text Variable
tv-config-toolbar-text Variable (Examples)
tv-get-export-image-link Variable
tv-get-export-image-link Variable (Examples)
tv-get-export-link Variable
tv-get-export-path Variable
tv-tiddler-preview Variable
tv-wikilink-template Variable
tv-wikilink-tooltip Variable
tv-wikilink-tooltip Variable (Examples)
tv-wikilinks Variable
tv-wikilinks Variable (Examples)
TW2Parser Plugin
TWaddle by Matias Goldman
TWCommunitySearch
TWEUM2016 Thumbnail.jpg
TWGuides by Andreas Hahn
twproxy by Steve Gattuso
Typed Blocks in WikiText
Typography
Uninstalling a plugin
UnpackPluginCommand
untagged Operator
untagged Operator (Examples)
UpgradeMechanism
Upgrading
Upgrading TiddlyWiki on Node.js
URI
Using a custom path prefix with the client-server edition
Using ES2016 for Writing Plugins
Using links to navigate between tiddlers
Using Stamp
Using Stylesheets
Using SVG
Using TiddlyWiki for GitHub project documentation
Using TiddlyWiki on Node.js
Variables
Variables in WikiText
VarsWidget
VerboseCommand
version Macro
version Macro (Examples)
VersionCommand
Videos
ViewWidget
vis.js Timeline by emkay, revived by kixam
Wednesday
What happened to the original TiddlyWiki?
WidgetMessage: tm-add-field
WidgetMessage: tm-add-tag
WidgetMessage: tm-auto-save-wiki
WidgetMessage: tm-browser-refresh
WidgetMessage: tm-cancel-tiddler
WidgetMessage: tm-clear-password
WidgetMessage: tm-close-all-tiddlers
WidgetMessage: tm-close-other-tiddlers
WidgetMessage: tm-close-tiddler
WidgetMessage: tm-delete-tiddler
WidgetMessage: tm-download-file
WidgetMessage: tm-edit-bitmap-operation
WidgetMessage: tm-edit-text-operation
WidgetMessage: tm-edit-tiddler
WidgetMessage: tm-fold-all-tiddlers
WidgetMessage: tm-fold-other-tiddlers
WidgetMessage: tm-fold-tiddler
WidgetMessage: tm-full-screen
WidgetMessage: tm-home
WidgetMessage: tm-import-tiddlers
WidgetMessage: tm-load-plugin-from-library
WidgetMessage: tm-load-plugin-library
WidgetMessage: tm-login
WidgetMessage: tm-logout
WidgetMessage: tm-modal
WidgetMessage: tm-navigate
WidgetMessage: tm-new-tiddler
WidgetMessage: tm-notify
WidgetMessage: tm-open-window
WidgetMessage: tm-perform-import
WidgetMessage: tm-permalink
WidgetMessage: tm-permaview
WidgetMessage: tm-remove-field
WidgetMessage: tm-remove-tag
WidgetMessage: tm-save-tiddler
WidgetMessage: tm-save-wiki
WidgetMessage: tm-scroll
WidgetMessage: tm-server-refresh
WidgetMessage: tm-set-password
WidgetMessage: tm-unfold-all-tiddlers
Widgets
Widgets in WikiText
Wiki
WikifyWidget
WikiText
Windows HTA Hack
Working with the TiddlyWiki5 repository
Working with the TiddlyWiki5 repository video
Working with TiddlyWiki

AlphaReleases

1st July 2014 at 9:16pm

Here are the details of the alpha releases of TiddlyWiki5. See TiddlyWiki5 Versioning for details of how releases are named.

Release 5.0.1-alpha

Released 6th December 2013 at 17:53

See GitHub for detailed change history of this release

Improvements

  • Changes to the importing process to enable a smoother Upgrading process
    • Ignores attempts to import plugins that are older than currently installed plugins
    • System tiddlers are now imported as usual
  • If $:/theme isn't defined or refers to a missing tiddler, then fallback through Snow White to Vanilla. This means that empty.html now defaults to Snow White
  • Added support for Block Quotes in WikiText

Bug fixes

  • Fixed bug that was preventing $:/tags/PageControls tiddlers from being reordered

Internal changes

append Operator

8th November 2015 at 5:15am
purposeappend a range of items from an array to the list
inputa list of items
suffixan integer N, defaulting to all
parameterlist = the array of items to be appended to the tail of the list
outputa list with items appended from the head of the operand array
! outputa list with items appended from the tail of the operand array

append Operator (Examples)

8th November 2015 at 5:15am

These examples make use of the Days of the Week tiddler.

[list[Days of the Week]append[Tomorrow]]

[list[Days of the Week]append[Yesterday Today Tomorrow]]

Append the first 4 short days of the week to our list

[list[Days of the Week]append:4{Days of the Week!!short}]

Articles

2nd June 2016 at 6:27pm

Here are some recent articles written about TiddlyWiki. Submit new articles via GitHub, Twitter or by posting in the TiddlyWiki Groups.

Audio

19th October 2014 at 9:06pm

Audio files can be incorporated into TiddlyWiki in a very similar way to images.

Embedded Audio

Small audio files can be embedded directly within TiddlyWiki. Embedding isn't suitable for large files (over a few hundred kilobytes) because it increases the size of the TiddlyWiki file.

For example, the tiddler TiddlyWiki.mp3 contains an MP3 recording of the word "TiddlyWiki". If you visit that tiddler, you should see an audio player that will play back the recording.

You can also transclude audio files. For example:

{{TiddlyWiki.mp3}}

That renders as:

External Audio

External audio tiddlers use the _canonical_uri field to point to an external audio file/stream, and have their text field blocked. This reduces their size considerably, but still allows for playback.

For example, the tiddler Caruso - Ave Maria points to an online audio recording hosted on http://archive.org:

{{Caruso - Ave Maria}}

That renders as:

AutoSave

10th June 2016 at 9:15am

If there is a SaverModule available that supports it, TiddlyWiki will automatically trigger a save of the current document on clicking ok or delete when editing a tiddler.

You should see a yellow notification at the top right of the window to confirm that an automatic save has taken place.

Automatic saving can be enabled or disabled through the Settings tab of the control panel . Behind the scenes, it is controlled through the configuration tiddler $:/config/AutoSave, which must have the value yes to enable automatic saving.

backlinks Operator

3rd February 2015 at 6:33pm
purposefind the titles that link to each input title
inputa selection of titles
parameternone
outputany non-system titles that contain hard links to the input titles

Each input title is processed in turn. The corresponding tiddler's list of backlinks is generated, sorted alphabetically by title, and then dominantly appended to the operator's overall output.

Examples

backlinks Operator (Examples)

18th January 2015 at 6:31pm

[[HelloThere]backlinks[]]

[tag[TableOfContents]backlinks[]]
→ tiddlers that link to tiddlers tagged TableOfContents

[all[current]backlinks[]]
→ tiddlers that link to this one

Base64

21st February 2015 at 6:17pm

Base64 is a way of representing binary data, such an image, as a string of text.

before Operator

3rd February 2015 at 7:19pm
purposefind which input title precedes a specified one
inputa selection of titles
parameterT = one of those titles
outputthe title that immediately precedes T in the input

If T is not present in the input, or is the first title there, then the output is empty.

Examples

before Operator (Examples)

18th January 2015 at 6:31pm

These examples make use of the Days of the Week tiddler. The Thursday tiddler shows a further example.

[list[Days of the Week]before[Saturday]]

[list[Days of the Week]before[Monday]]

BetaReleases

10th October 2014 at 10:28am

Here are the details of the beta releases of TiddlyWiki5. See TiddlyWiki5 Versioning for details of how releases are named.

Release 5.0.18-beta

Released 17th September 2014 at 22:10

See GitHub for detailed change history of this release

This is a minor release prior to the full release of TiddlyWiki on September 20th. The documentation has been cleaned up and improved (with more improvements to come).

File Layout of tiddlywiki.com

The layout of files on tiddlywiki.com has been adjusted to make it more logical. See the ticket for a discussion. You can see the source files that make up tiddlywiki.com at https://github.com/Jermolene/jermolene.github.com

Hackability Improvements

  • Added first iteration of a list-links macro (further improvements are planned)
  • Added support for importing .markdown and .md files
  • Extended timeline macro to support a subfilter

Bug Fixes

  • Fixed problem with digits being classified as lower case letters for wiki link matching
  • Fixed crash when sorting missing tiddlers by fields other than title
  • Fixed problem with handling .jpeg file extensions
  • Fixed problem with RadioWidget and missing tiddlers
  • Fixed problem with dragging a partially selected link

Contributors

@Jermolene would like to thank the contributors to this release who have generously given their time to help improve TiddlyWiki:

bf Operator

3rd February 2015 at 6:37pm
purposesame as rest

Block Quotes in WikiText

7th June 2016 at 10:24am

There are two ways to produce HTML block quotes in TiddlyWiki5, one for content spread across multiple lines, and one for single line content.

Multi-line Block Quotes

The syntax for multi-line block quotes ( ) is:

<<<
This is a block quoted paragraph
written in English
<<<

That renders as:

This is a block quoted paragraph written in English

... and the underlying HTML is:

<blockquote class="tc-quote"><p>This is a block quoted paragraph
written in English
</p></blockquote>

Citation

A citation can be added to the quote like this:

<<<
Computers are like a bicycle for our minds
<<< Steve Jobs

That renders as:

Computers are like a bicycle for our minds

Steve Jobs

... and the underlying HTML is:

<blockquote class="tc-quote"><p>Computers are like a bicycle for our minds
</p><cite>Steve Jobs</cite></blockquote>

CSS Classes

CSS classes can be added to a block quote:

<<<.myClass.another-class
Operating systems are like a brick wall for our minds
<<< Nobody

That renders as:

Operating systems are like a brick wall for our minds

Nobody

... and the underlying HTML is:

<blockquote class="tc-quote myClass another-class"><p>Operating systems are like a brick wall for our minds
</p><cite>Nobody</cite></blockquote>

Single-line Block Quotes

The single-line syntax for block quotes is actually an extension of the syntax for Lists in WikiText. For example:

> Quoted text
> Another line of quoted text

That renders as:

Quoted text

Another line of quoted text

... and the underlying HTML is:

<blockquote><p>Quoted text</p><p>Another line of quoted text</p></blockquote>

You can also nest quotes like this:

> A top quote
>> A subquote
> Another top quote

Which renders as:

A top quote

A subquote

Another top quote

You can also mix block quotes with other list items. For example:

* List One
** List Two
**> A quote
**> Another quote
* List Three

That renders as:

  • List One
    • List Two

      A quote

      Another quote

  • List Three

... and the underlying HTML is:

<ul><li>List One<ul><li>List Two<blockquote><p>A quote</p><p>Another quote</p></blockquote></li></ul></li><li>List Three</li></ul>

Blog Edition

2nd September 2015 at 1:32pm

The Blog edition of TiddlyWiki contains tools to help publish static HTML blogs written in TiddlyWiki. It is currently designed for use under Node.js.

While documentation is being prepared, see https://github.com/Jermolene-blog/blog for an example of use.

Blurry Lawn.jpg

BrowserCompatibility

TiddlyWiki is designed to work with HTML5-compatible browsers.

The following table summarises the browser versions that are known to work with TiddlyWiki

BrowserStatus
Internet ExplorerVersion 10 and above
ChromeAll recent versions
FirefoxAll recent versions
Firefox for AndroidAll recent versions
SafariVersion 6 and above

BrowseWidget

2nd December 2014 at 3:53pm

Introduction

The browse widget displays an HTML file browser button that allows the user to choose one or more files to import. It sends a WidgetMessage: tm-import-tiddlers carrying a JSON representation of the tiddlers imported from the files up through its parents. This message usually trapped by the NavigatorWidget which adds the tiddlers to the store and updates the story to display them.

Content and Attributes

The content of the <$browse> widget is ignored.

AttributeDescription
multipleSet to "multiple" to select multiple file upload
tooltipOptional tooltip text
messageOptional override of widget message to be generated. The parameter for the message will be the JavaScript object event.target.files

On iPhone/iPad choosing the multiple option will remove the ability to take photographs/videos directly into TiddlyWiki.

e.g.

<$browse>

renders as:

BT

1st November 2013 at 9:11am

BT (née British Telecom) is the UK's largest telecommunications company. In 2007, Osmosoft was acquired by BT. JeremyRuston subsequently left BT in 2011.

BuildCommand

27th April 2014 at 10:04pm

Build the specified build targets for the current wiki. If no build targets are specified then all available targets will be built.

--build <target> [<target> ...]

Build targets are defined in the tiddlywiki.info file of a wiki folder.

See TiddlyWikiFolders for details of defining build targets.

Building TiddlyWikiClassic

12th September 2014 at 3:16pm

TiddlyWiki5 can be used to build older 2.x.x versions of TiddlyWikiClassic from their constituent components. Doing so involves these features:

  • The tiddlywiki/classictools plugin, containing a deserializer module which allows tiddlers to be loaded from TiddlyWiki 2.x.x .recipe files
  • The stripcomments format for the ViewWidget, which strips single line JavaScript comments starting //#
  • The stripTitlePrefix='yes' attribute of the FieldsWidget, which removes prefixes wrapped in curly braces from the title attribute
    • For example, {tiddler}HelloThere would be transformed to HelloThere

Usage

TiddlyWikiClassic is built from the command line by running TiddlyWiki on Node.js. A typical usage would be:

node ../../tiddlywiki.js \
	--verbose \
	--load <path_to_recipe_file> \
	--rendertiddler $:/core/templates/tiddlywiki2.template.html <path_to_write_index_file> text/plain \
	|| exit 1

butfirst Operator

3rd February 2015 at 6:37pm
purposesame as rest

butlast Operator

3rd February 2015 at 7:19pm
purposediscard the last N input titles
inputa selection of titles
parameterN = an integer, defaulting to 1
outputall but the last N input titles

butlast Operator (Examples)

18th January 2015 at 6:31pm

These examples make use of the Days of the Week tiddler.

[list[Days of the Week]butlast[]]

[list[Days of the Week]butlast[2]]

A B C D E F G H I J K L M +[butlast[7]]

ButtonWidget

29th April 2016 at 6:50pm

Introduction

The button widget displays an HTML <button> element that can perform a combination of optional actions when clicked:

  • Executing any ActionWidgets passed in the actions attribute
  • Executing any ActionWidgets that are immediate children of the button widget
  • Execute any integrated actions:
    • Navigate to a specified tiddler
    • Dispatch a user defined widget message
    • Trigger a user defined popup
    • Assign new text to a specified tiddler

The integrated actions are provided as a shortcut for invoking common actions. The same functionality is available via ActionWidgets, with the exception of the support for highlighting selected popups.

Content and Attributes

The content of the <$button> widget is displayed within the button.

AttributeDescription
actionsA string containing ActionWidgets to be triggered when the key combination is detected
toThe title of the tiddler to navigate to
messageThe name of the widget message to send when the button is clicked
paramThe optional parameter to the message
setA TextReference to which a new value will be assigned
setToThe new value to assign to the TextReference identified in the set attribute
popupTitle of a state tiddler for a popup that is toggled when the button is clicked
aria-labelOptional Accessibility label
tooltipOptional tooltip
classAn optional CSS class name to be assigned to the HTML element
styleAn optional CSS style attribute to be assigned to the HTML element
selectedClassAn optional additional CSS class to be assigned if the popup is triggered or the tiddler specified in set already has the value specified in setTo
tagAn optional html tag to use instead of the default "button"
defaultDefault value if set tiddler is missing for testing against setTo to determine selectedClass

Note: In almost all other cases where a TextReference is used as a widget attribute, it will be placed between curly brackets, to transclude the value currently stored there. However, when we use a TextReference as the value of a button widget's set attribute, we are referencing the storage location itself, rather than the value stored there, so we do not use curly brackets there. Example: we could code a button widget that sets the caption field of TiddlerA to be the same as that of TiddlerB as:

<$button set="TiddlerA!!caption" setTo={{TiddlerB!!caption}} >

Press me!

</$button>

Tip: Set class to tc-btn-invisible tc-tiddlylink to have a button look like an internal link.

CamelCase

28th August 2013 at 7:53pm

CamelCase is formed by taking a phrase, capitalising the initial letter of each word, and smashing the words together to form a portmanteau word. Most wikis use CamelCase to signal phrases that should automatically become links.

Caruso - Ave Maria

Cascading Style Sheets

21st February 2015 at 6:17pm

CSS is a standard plain-text format used for defining the presentational style of the various elements on a web page.

changecount Macro

21st February 2015 at 3:12pm

The changecount macro returns the number of times the current tiddler has been created, stored or deleted during the current TiddlyWiki session.

If a tiddler is deleted and subsequently recreated, its changecount will go up by two.

Parameters

(none)

Examples

changecount Macro (Examples)

21st February 2015 at 3:12pm

<<changecount>>

The value will increase if you edit this tiddler and store it again, even without making any changes to its content.

To access the changecount of a different tiddler, use a $tiddler widget:

<$tiddler tiddler="Draft of 'New Tiddler'">
<<changecount>>
</$tiddler>

The value shown will increase whenever you create, store or delete New Tiddler.

Changes to filters in 5.0.9-beta

3rd April 2014 at 11:35pm

Introduction

This release resolves a number of inconsistencies with the way that filters are handled. The changes mean that existing filters may need to be updated - particularly those that must deal with missing or shadow tiddlers.

Changes to is and addition of all

Most filter operators act by choosing some or all of their source titles to pass through or re-order. Those that add new entries that are not drawn from the source list are referred to as selectors. Prior to 5.0.9-beta, a few filter operators were inconsistent in whether they filtered from the source list or selected new entries into it.

The specific changes are:

  • The is operator now always strictly filters from the currently selected list of tiddlers
  • The new all operator acts as a selector by replacing the current list with a combination of tiddlers from specific sources:
    • current for the current tiddler
    • missing for all missing tiddlers
    • orphans for all orphan tiddlers
    • shadows for all shadow tiddlers
    • tiddlers for all non-shadow tiddlers (including both system and non-system tiddlers)

The sources for the all operator can be combined with the + character. For example, [all[shadows+tiddlers]] returns all shadow tiddlers and all ordinary tiddlers.

Previously, it was common to have [is[shadow]] at the start of a filter string to select all the shadow tiddlers. In 5.0.9 and above, this will not return all the shadow tiddlers, but instead just those ordinary tiddlers that are also shadow tiddlers (by virtue of having overridden one). The resolution is to use the new all operator. For example, consider this filter from 5.0.8:

[is[shadow]!has[draft.of]tag[$:/tags/AdvancedSearch]] [!is[shadow]!has[draft.of]tag[$:/tags/AdvancedSearch]] +[tag[$:/tags/AdvancedSearch]]

In 5.0.9, that filter has been changed to:

[all[shadows+tiddlers]tag[$:/tags/AdvancedSearch]!has[draft.of]]

Note how the all operator allows operations to be performed on tiddlers from combinations of sources.

Changes to [is[current]]

One result of the changes is that [is[current]] now strictly filters from the source tiddlers; so, if the current tiddler is a missing tiddler not in the source list, then [is[current]] will return an empty list.

The solution is generally to use [all[current]] instead. It doesn't read as well, but has the required behaviour of returning just the current tiddler, regardless of whether it is in the source tiddlers.

Changes to title and field

There are minor changes to the way that the title and field operators work.

The title operator is a selector: it returns the specified title regardless of whether it is in the current source. title is used as the default operator if none is specified

The field operator is a filter: it only returns a subset of the source tiddlers. field is used as the default operator if the supplied operator is not defined (the supplied operator is passed as the suffix to the field operator, so [description[Missing]] is equivalent to [field:description[Missing]]).

CheckboxWidget

26th June 2015 at 10:13am

Introduction

The checkbox widget displays an HTML <input type="checkbox"> element that is dynamically bound to either:

  • the presence or absence of a specified tag on a specified tiddler
  • the value of a specified field of a specified tiddler

Content and Attributes

The content of the <$checkbox> widget is displayed within an HTML <label> element immediately after the checkbox itself. This means that clicking on the content will toggle the checkbox.

AttributeDescription
tiddlerTitle of the tiddler to manipulate (defaults to the current tiddler)
tagThe name of the tag to which the checkbox should be bound
invertTagWhen set to yes, flips the tag binding logic so that the absence of the tag causes the checkbox to be checked
fieldThe name of the field to which the checkbox should be bound
checkedThe value of the field corresponding to the checkbox being checked
uncheckedThe value of the field corresponding to the checkbox being unchecked
defaultThe default value to use if the field is not defined
classThe class that will be assigned to the label element

Tag Mode

Using the checkbox widget in tag mode requires the tag attribute to specify the name of the tag. The tiddler attribute specifies the tiddler to target, defaulting to the current tiddler if not present.

This example creates a checkbox that flips the done tag on the current tiddler:

<$checkbox tag="done">Is it done?</$checkbox>

Field Mode

Using the checkbox widget in field mode requires the field attribute to specify the name of the field. The checked and unchecked attributes specify the values to be assigned to the field to correspond to its checked and unchecked states respectively. The default attribute is used as a fallback value if the field is not defined.

This example creates a checkbox that is checked if the field status is equal to open and unchecked if the field is equal to closed. If the field is undefined then it defaults to closed, meaning that the checkbox will be unchecked if the status field is missing.

<$checkbox field="status" checked="open" unchecked="closed" default="closed">Is it open?</$checkbox>

Chinese (Simplified) Edition

20th September 2014 at 4:02am

TiddlyWiki 的简体中文翻译版本:

另请参阅 中文 (正體) 版

Chinese (Traditional) Edition

20th September 2014 at 4:02am

TiddlyWiki 的正體中文翻譯版本:

另請參閱 中文 (简体) 版

ClearPasswordCommand

Clear the password for subsequent crypto operations

--clearpassword

Code Blocks in WikiText

6th June 2016 at 3:03pm

You can use triple backticks ``` to mark code blocks ( ):

```
This will be monospaced
```

Renders as:

This will be monospaced

To be interpreted correctly, the three backticks need to be at the start of the line and immediately followed by a line-break.

Be aware that any preceding paragraph content should be properly terminated with a double line break, too. So, this example is wrong:

This is an ordinary paragraph
```
This will be monospaced
```

The correct version is:

This is an ordinary paragraph

```
This will be monospaced
```

Note that some keyboard layouts treat the backtick as a dead key, making it hard to type. The trick is to type three backticks followed by a space. Alternatively, type all six backticks in one go, then a space, and then move the cursor back three characters to type or paste the content.

CodeBlockWidget

3rd November 2015 at 4:02pm

Introduction

The codeblock widget renders text in <pre> and <code> blocks, causing it to be displayed monospace. A language may optionally be specified using the language attribute, however syntax highlighting will only be used if the Highlight Plugin is installed.

Content and Attributes

The content of the <$codeblock> widget is ignored.

AttributeDescription
codeContents of the block to render as code
languageProgramming language for syntax highlighting

Examples

Here is an example embedding the contents of a tiddler as a code block.

<$codeblock code={{$:/editions/tw5.com/macro-examples/say-hi}} />

That renders as:

\define sayhi(name:"Bugs Bunny" address:"Rabbit Hole Hill")
Hi, I'm $name$ and I live in $address$.
\end

A codeblock may also specify a language.

<$codeblock code="SELECT * FROM users WHERE deleted = false" language="sql" />

That renders as:

SELECT * FROM users WHERE deleted = false

CodeMirror Plugin

7th January 2016 at 10:37pm

The CodeMirror plugin adds a sophisticated web-based editor to TiddlyWiki.

See http://tiddlywiki.com/plugins/tiddlywiki/codemirror/

colour Macro

21st February 2015 at 3:45pm

The colour (or color) macro returns the CSS value of one the colours in the current palette.

If no such entry exists in the current palette, the vanilla palette is used instead.

Parameters

name
The name of the palette entry, e.g. page-background

Examples

colour Macro (Examples)

21st February 2015 at 3:48pm

<<colour code-border>>
<<colour foreground>>
<<colour page-background>>
<<colour sidebar-tab-background>>
<<colour tag-foreground>>

colour-picker Macro

18th April 2016 at 4:43pm

The colour-picker macro displays an interactive colour picker, as can be seen in the core bitmap editor.

Parameters

actions
Wikitext for the action widgets that should be executed when the user selects a colour. Within the text, the variable colour-picker-value contains the selected colour.

Examples

colour-picker Macro (Example 1)

18th April 2016 at 4:54pm

Colour:


Recent:



colour-picker Macro (Examples)

18th April 2016 at 4:53pm

Colour: <$edit-text tiddler='$:/_MyColour' tag='input' placeholder='(unset)' default=''/>

---

<$macrocall $name='colour-picker' actions="

<$action-setfield $tiddler='$:/_MyColour' $value=<<colour-picker-value>>/>

"/>

ColourPalettes

17th June 2016 at 11:12am

A colour palette is a data tiddler that supplies a CSS colour value, such as yellow or #fe0, for each of several colour names, like this:

page-background: #fe0
table-border: #ccc
...

Several palettes form part of the core. The system tiddler $:/palette always contains the title of the currently selected palette tiddler. You can change a palette using the palette button, found on the "Tools" tab in the sidebar.

To retrieve the value of a named colour from the current palette, e.g. for use in a stylesheet tiddler, use the colour macro:

<<colour page-background>>

Palette tiddlers should have the following fields:

NameValue
titleTypically starting with $:/
typeapplication/x-tiddler-dictionary
tags$:/tags/Palette
descriptionDisplayed in the palette browser
textname: value colour definitions

Comma-Separated Values

21st February 2015 at 6:13pm

CSV is a standard plain-text format for storing a table of data.

Each row of the table is called a record and occupies one line.

The columns are called fields. Each field of a row is separated from the next by a comma, and is often delimited by quotation marks.

The csvtiddlers macro returns tiddler content in this format.

Commands

17th January 2015 at 8:52pm

commands Operator

3rd February 2015 at 6:41pm
purposeselect the titles of all the Node.js commands
inputignored
parameternone
outputthe command words that can be given to TiddlyWiki on Node.js

commands Operator (Examples)

18th January 2015 at 6:31pm

[commands[]]

Community

11th September 2014 at 9:49am

Here we gather the latest and most useful material from the TiddlyWiki community.

The latest news, articles, resources and examples.

Compose ballad

25th August 2013 at 3:30pm

This is a sample task for the TaskManagementExample

Concepts

25th August 2013 at 3:47pm

Configuring the default TiddlerInfo tab

12th September 2014 at 3:59pm

The configuration tiddler $:/config/TiddlerInfo/Default contains the title of the tiddler containing the default tiddler info tab.

The default value is $:/core/ui/TiddlerInfo/Tools corresponding to the Tools tab. Other possible values are:

  • $:/core/ui/TiddlerInfo/Tools
  • $:/core/ui/TiddlerInfo/References
  • $:/core/ui/TiddlerInfo/Tagging
  • $:/core/ui/TiddlerInfo/List
  • $:/core/ui/TiddlerInfo/Listed
  • $:/core/ui/TiddlerInfo/Fields
  • $:/core/ui/TiddlerInfo/Advanced
  • $:/editions/tw5.com/TiddlerInfo/Sources

Contents

21st February 2015 at 7:46pm

This is an example tiddler. See Table-of-Contents Macros (Examples).

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

ContentType

21st February 2015 at 12:08pm

Used in Internet protocols to indicate the type that should be used to interpret the content of a web resource.

In TiddlyWiki, the type field gives the content type to apply to the main text field.

List of Common Content Types

GroupTypeContent of type field
DeveloperData dictionaryapplication/x-tiddler-dictionary
JavaScript codeapplication/javascript
JSON dataapplication/json
Static stylesheettext/css
ImageGIF imageimage/gif
ICO format icon fileimage/x-icon
JPEG imageimage/jpeg
PDF imageapplication/pdf
PNG imageimage/png
Structured Vector Graphics imageimage/svg+xml
TextHTML markuptext/html
CSS stylesheettext/css
Comma-separated valuestext/csv
Plain texttext/plain
TiddlyWiki 5text/vnd.tiddlywiki
TiddlyWiki Classictext/x-tiddlywiki

contrastcolour Macro

21st February 2015 at 3:13pm

The contrastcolour macro returns whichever of two given CSS colours is deemed to contrast best with another.

An example can be seen in the template tiddler for tag pills.

Parameters

target
The colour to contrast against (typically a background colour)
fallbackTarget
An alternative colour to contrast against. This is used when target is undefined or not a valid colour
colourA
The first of the two colours to choose between
colourB
The second of the two colours to choose between

Contributing

30th June 2015 at 9:57pm

We welcome contributions to the code and documentation of TiddlyWiki in several ways:

There are other ways to help TiddlyWiki too.

Contributor License Agreement

Like other OpenSource projects, TiddlyWiki5 needs a signed contributor license agreement from individual contributors. This is a legal agreement that allows contributors to assert that they own the copyright of their contribution, and that they agree to license it to the UnaMesa Association (the legal entity that owns TiddlyWiki on behalf of the community).

How to sign the CLA

Create a GitHub pull request to add your name to cla-individual.md or cla-entity.md, with the date in the format (YYYY/MM/DD).

step by step

  1. Navigate to licenses/CLA-individual or licenses/CLA-entity according to whether you are signing as an individual or representative of an organisation
  2. Click the "edit" button at the top-right corner (clicking this button will fork the project so you can edit the file)
  3. Add your name at the bottom
    • eg: Jeremy Ruston, @Jermolene, 2011/11/22
  4. Below the edit box for the CLA text you should see a box labelled Propose file change
  5. Enter a brief title to explain the change (eg, "Signing the CLA")
  6. Click the green button labelled Propose file change
  7. On the following screen, click the green button labelled Create pull request

The CLA documents used for this project were created using Harmony Project Templates. "HA-CLA-I-LIST Version 1.0" for "CLA-individual" and "HA-CLA-E-LIST Version 1.0" for "CLA-entity".

Remarks ----—

    • When not owning the copyright in the entire work of authorship**

In this case, please clearly state so, since otherwise we assume that you are the legal copyright holder of the contributed work! Please provide links and additional information that clarify under which license the rest of the code is distributed.

ContributingTemplate

25th August 2013 at 3:49pm

Contributing to TiddlyWiki5

We welcome contributions to the code and documentation of TiddlyWiki in several ways:

There are other ways to help TiddlyWiki too.

Contributor License Agreement

Like other OpenSource projects, TiddlyWiki5 needs a signed contributor license agreement from individual contributors. This is a legal agreement that allows contributors to assert that they own the copyright of their contribution, and that they agree to license it to the UnaMesa Association (the legal entity that owns TiddlyWiki on behalf of the community).

How to sign the CLA

Create a GitHub pull request to add your name to cla-individual.md or cla-entity.md, with the date in the format (YYYY/MM/DD).

step by step

  1. Navigate to licenses/CLA-individual or licenses/CLA-entity according to whether you are signing as an individual or representative of an organisation
  2. Click the "edit" button at the top-right corner (clicking this button will fork the project so you can edit the file)
  3. Add your name at the bottom
    • eg: Jeremy Ruston, @Jermolene, 2011/11/22
  4. Below the edit box for the CLA text you should see a box labelled Propose file change
  5. Enter a brief title to explain the change (eg, "Signing the CLA")
  6. Click the green button labelled Propose file change
  7. On the following screen, click the green button labelled Create pull request

The CLA documents used for this project were created using Harmony Project Templates. "HA-CLA-I-LIST Version 1.0" for "CLA-individual" and "HA-CLA-E-LIST Version 1.0" for "CLA-entity".

Remarks ----—

    • When not owning the copyright in the entire work of authorship**

In this case, please clearly state so, since otherwise we assume that you are the legal copyright holder of the contributed work! Please provide links and additional information that clarify under which license the rest of the code is distributed.

This file was automatically generated by TiddlyWiki5

Contributor License Agreement

30th June 2015 at 9:56pm

Like other OpenSource projects, TiddlyWiki5 needs a signed contributor license agreement from individual contributors. This is a legal agreement that allows contributors to assert that they own the copyright of their contribution, and that they agree to license it to the UnaMesa Association (the legal entity that owns TiddlyWiki on behalf of the community).

Contributors

16th September 2014 at 2:31pm

The following individuals have generously given their time to contribute to the development of TiddlyWiki:

Copying tiddlers between TiddlyWiki files

19th September 2014 at 5:15pm

You can copy an individual tiddler from one TiddlyWiki file to another by dragging a link to the tiddler from one browser window to another.

Core Macros

21st February 2015 at 10:20pm

Core Variables

28th February 2015 at 1:41pm

CountWidget

30th October 2013 at 8:37am

Introduction

The count widget displays the number of matches to a specified filter expression.

Content and Attributes

The content of the <$count> widget is ignored.

AttributeDescription
filterThe filter expression to count

Creating a custom export format

24th November 2014 at 5:35pm

To create a custom export format that exports tiddlers as their raw body text:

  1. Create a tiddler with the following fields:
    • tags: $:/tags/Exporter
    • description: Description of this exporter
    • extension: Default file extension for this export format (including the dot; for example .tid)
  2. Set the following content:
\define renderContent()
{{{ $(exportFilter)$ ||$:/core/templates/plain-text-tiddler}}}
\end
<<renderContent>>

The variable exportFilter contains a filter defining which tiddlers should be exported.

Creating and editing tiddlers

7th June 2016 at 4:37pm

Creating tiddlers

You create a tiddler either by clicking the button in the sidebar, or by clicking on a link to a missing tiddler. Links to missing tiddlers are shown in blue italics.

See also:

Editing tiddlers

To edit an existing tiddler, click the button at the top right of the tiddler.

Draft mode

When you create a new tiddler or edit an existing one, the tiddler will go into draft mode. This presents a control panel for modifying the tiddler in various ways. It has several parts, from top to bottom:

  • The title field - Use this to change the title of the tiddler
  • The tag selector - Use this to add or remove tags. As you type a tag name in the box, a dropdown list will show you any existing tags that match. You can pick from this list or create a completely new tag. Then click the add button to add the tag to the tiddler. Each tag is shown as a coloured pill. Click the "×" on a pill to remove that tag
  • The text area - Use this to edit the main content of the tiddler. Click the preview button ( / ) to see what your changes will look like
  • The type selector - Use this when a tiddler needs to be displayed in a special way, such as an image. See ContentType for a list of the options. The default is text/vnd.tiddlywiki, which means the tiddler contains WikiText
  • The field selector - Use this to add or remove fields on the tiddler. For example, if you are editing a tiddler that's being used to tag other tiddlers, you can add a ''list'' field to change the order in which those tiddlers will be listed

Save, cancel or delete

When you have finished editing, click a button at the top right of the tiddler:

  • The ok button ( ) stores your changes to this one tiddler and leaves draft mode. If your wiki is configured to AutoSave, your changes will be permanently saved. Otherwise they will only be stored temporarily in your web browser, and you will lose them if you close your TiddlyWiki page without first clicking the master save changes button ( ) in the sidebar.
  • The cancel button ( ) discards your changes (after asking you to confirm) and leaves draft mode.
  • The delete button ( ) deletes the entire tiddler (after asking you to confirm).

Creating journal tiddlers

10th June 2016 at 9:18am

Introduction

Journal tiddlers are tiddlers that use a date and/or time as their title. They are typically used as a quick way to record time-stamped information.

You can use additional tags on a journal tiddler to link it to other tiddlers, helping to establish the relationships between items of information.

For example, you might use a journal tiddler called 10th October 2014 to record thoughts and information captured on that particular day. The tags Shopping and London might be used to indicate that the entry concerns shopping in London.

Creating a journal tiddler

The easiest way to create a journal tiddler is to use the new journal button 25 in the Tools tab of the sidebar. If you find yourself often using the button, click the checkbox next to it to make the button available just above the search box.

The new journal button creates a journal entry as a blank tiddler with the tag Journal and a title derived from today's date. If a journal tiddler with that title already exists, then this is opened for editing.

Creating a tagged journal tiddler

A common sequence of actions is to create (or reopen) today's journal entry and tag it with the title of another tiddler. This can be done with the new journal here button 25 in the other tiddler's toolbar. You can find this button in the Tools tab of the tiddler's InfoPanel.

For example, you might be reviewing a tiddler called Oxford Street and realise that it's relevant for planning your shopping trip. Click the new journal here button on the Oxford Street tiddler to bring up a journal entry tagged with Oxford Street.

Customising journal tiddlers

To configure how new journal entries are created, visit the Basics tab under Info in the control panel :

  • "Title of new journal tiddlers" specifies how these tiddlers should be named, as a date format string. The default setting of DDth MMM YYYY causes new entries to have titles of the form "10th October 2014"
  • "Tags for new journal tiddlers" [specifies|Title List] tags that will automatically appear on new journal entries. For example: Journal [[Summer vacation]]

Hint: if you want to create a separate journal tiddler whenever you click new journal (even if you do this several times in the same day), you can include the clock time in the title format. Specify something like YYYY-0MM-0DD at 0hhh0mm'0ss'' as the date format.

Another useful trick is to include $(currentTiddler)$ somewhere in the title format. This means that if you click new journal here on several different tiddlers, the title of each of those tiddlers will form part of the name of the resulting journal entries.

Creating SubStories

19th September 2014 at 5:15pm

This example shows how to create a sub-story within a tiddler that is independent of the main story.

Here's the code:

<$navigator story="MySubStoryList" history="MySubHistoryList">

Click this link to get started: HelloThere

<$list filter="[list[MySubStoryList]]" history="MySubHistoryList">
<div>

! <$button message="tm-close-tiddler" class="tc-btn-invisible">{{$:/core/images/close-button}}</$button> <$view field="title"/>

<$transclude/>
</div>
</$list>

</$navigator>

Note how you can open the HelloThere tiddler in the substory by clicking on the link below. Links within the substory open within the substory, and not in the main story.

Click this link to get started: HelloThere

csvtiddlers Macro

21st February 2015 at 3:13pm

The csvtiddlers macro returns the fields of a selection of tiddlers in CSV form, with one record (row) per tiddler.

An example can be seen in the template tiddler for CSV exports.

Parameters

filter
A filter selecting which tiddlers to include
format
Reserved for future extension. Should be set to quoted-comma-sep

Current Tiddler

21st February 2015 at 9:50pm

The current tiddler provides the context in which several aspects of WikiText are interpreted.

For example, {{!!title}} denotes the value of the title field of whatever the current tiddler happens to be. This technique can be used to create general-purpose template tiddlers.

The title of the current tiddler can always be found in the currentTiddler variable.

The two most common ways in which the current tiddler is changed are:

  • the $tiddler widget
  • the $list widget (when its variable attribute is not overridden)

The current tiddler is therefore often not the same as the tiddler that is being viewed or edited.

currentTiddler Variable

21st February 2015 at 3:20pm

The currentTiddler variable contains the title of the current tiddler.

Several aspects of WikiText use this tiddler as their context. As a result, within a $list widget or a template tiddler, there is often no need to explicitly specify a tiddler title.

Compare storyTiddler.

Examples

currentTiddler Variable (Examples)

21st February 2015 at 2:13pm

The following two examples have the same meaning:

<$view field=title/>
<$view tiddler=<<currentTiddler>> field=title/>

This next example shows how the $list widget changes the current tiddler:

<ol>
<$list filter="[prefix[J]]">
<li><<currentTiddler>></li>
</$list>
</ol>

Customise TiddlyWiki

4th September 2014 at 11:16am

Customising search results

27th October 2014 at 3:19pm

By default, the results for the sidebar search box are displayed as a simple list of tiddler titles. The search results can be customised by adding plugin visualisations that show the search results in different ways. (Tabs are shown automatically if an additional search result visualisation is detected).

Search result visualisations are stored in tiddlers tagged $:/tags/SearchResults. The default search result listing is implemented in the system tiddler $:/core/ui/DefaultSearchResultList.

To create a new search result visualisation:

  1. Create a new tiddler tagged $:/tags/SearchResults
  2. Use the widget variable searchTiddler to access the title of the tiddler containing the current search term

If you'd like the new visualisation to be the default, create a tiddler called $:/config/SearchResults/Default containing the title of the tiddler containing the search visualisation that you want to display by default.

Here is an example of an alternative visualisation that displays results in reverse chronological order:

\define searchResults()
<$set name="resultCount" value="""<$count filter="[!is[system]search{$(searchTiddler)$}]"/>""">

{{$:/language/Search/Matches}}

</$set>
<<timeline subfilter:"!is[system]search{$(searchTiddler)$}">>
\end
<<searchResults>>

Customising Tiddler File Naming

24th April 2016 at 7:13pm

By default, a TiddlyWiki on Node.js instance using a wiki folder will create new tiddler files by using the sanitised and disambiguated title as filename.

This can be customised by creating a tiddler $:/config/FileSystemPaths containing one or more filter expressions, each on a line of its own. Newly created tiddlers are matched to each filter in turn, and the first output of the first filter to produce any output is taken as a logical path to be used for the tiddler file. Logical paths don't include the .tid extension, and they always use / as directory separator (when generating the physical path, this is replaced by the correct separator for the platform TiddlyWiki is running on). If none of the filters matches, the logical path is simply the title with all occurences of / replaced by _ (for backwards compatibility).

In both cases, the characters <>:"\|?*^ are replaced by _ in order to guarantee that the resulting path is legal on all supported platforms.

Example

[is[system]removeprefix[$:/]addprefix[_system/]]
[tag[task][addprefix[mytasks/]]
[!has[draft.of]]

This will store newly created system tiddlers in tiddlers/_system (after stripping the $:/ prefix), tiddlers tagged task in a subdirectory tiddlers/mytasks, and also create subdirectory structures for all other non-draft tiddlers.

Thus, $:/config/FileSystemPaths itself will end up in tiddlers/_system/config/FileSystemPaths.tid or tiddlers\_system\config\FileSystemPaths.tid, depending on the platform.

D3 Plugin

7th January 2016 at 10:37pm

The D3 plugin integrates the D3 visualisation library with TiddlyWiki.

See http://tiddlywiki.com/plugins/tiddlywiki/d3/

Dashes in WikiText

5th December 2013 at 4:06pm

You can create an n-dash with a double hyphen -- and an m-dash with a triple hyphen ---. For example – this is an example — and so is this

Data URI

21st February 2015 at 6:17pm

A data URI is a way of storing data (such as an image) in a way that is compatible with the addresses used by web pages and stylesheets to access external resources.

The datauri macro can be used to generate data URIs within TiddlyWiki.

DataTiddlers

29th August 2013 at 5:47pm

A data tiddler is a miniature database contained within a tiddler.

There are two standard formats:

Other formats of tiddler can also be parsed to yield blocks of data that behave like data tiddlers.

Use a TextReference to look up the value of a named property. For example, if a DictionaryTiddler called MonthDays contains:

oct:31
nov:30
dec:31

... then {{MonthDays##nov}} will resolve to the value 30.

The same is true if MonthDays is a JSONTiddler with the following content:

{"oct":31,"nov":30,"dec":31}

Note: It is currently only possible to retrieve data from the immediate properties of the root object of a JSONTiddler.

The widgets ActionSetFieldWidget and ActionListopsWidget can manipulate named properties of data tiddlers by indicating the name of the property in the $index attribute. To create or modify a named property with ActionSetFieldWidget, provide a $value attribute. To delete a named property with ActionSetFieldWidget, omit the $value attribute. ActionListopsWidget assigns the named property the list constructed through its $filter and $subfilter attributes.

datauri Macro

21st February 2015 at 10:28pm

The datauri macro returns a data URI for the content of a tiddler.

It is often used in stylesheet tiddlers to reference things like inline images and fonts:

background: url(<<datauri "Motovun Jack.jpg">>);

The data URI is automatically base64-encoded in the case of a non-text tiddler.

Parameters

title
The title of a tiddler, such as an image

Examples

datauri Macro (Examples)

21st February 2015 at 10:35pm

<style>
.jack {
	background: url(<$macrocall $name="datauri" title="Motovun Jack.jpg" $output="text/plain"/>);
	height: 300px;
}
</style>

<div class="jack"/>

The example has to invoke datauri through the $macrocall widget. It needs to prevent the macro's output from being parsed as WikiText, as that would transform the data URI into a $link widget and break the example. If the example was in a CSS tiddler, you could simply write:

background: url(<<datauri "Motovun Jack.jpg">>);

Date Fields

24th January 2015 at 9:45pm

Certain fields of a tiddler are used to store dates and times.

The two standard date fields are created and modified.

Values of date fields are 17-character strings:

  • 4 digits for the year
  • 2 digits for the month
  • 2 digits for the day
  • 2 digits for the hour
  • 2 digits for the minute
  • 2 digits for the second
  • 3 digits for the millisecond

To avoid problems arising from differences of time zone, TiddlyWiki always uses UTC.

As an example, the created field of this tiddler has the value 20150117190213631.

Dates can be converted to other formats for display:

<$view field="created" format="date" template="DDD DDth MMM YYYY"/>

That renders as:

Saturday 17th January 2015

DateFormat

12th September 2014 at 3:58pm

The ViewWidget accepts a template attribute that allows the format of date values to be specified. The format string is processed with the following substitutions:

TokenSubstituted Value
DDDDay of week in full (eg, "Monday")
dddShort day of week (eg, "Mon")
DDDay of month
0DDAdds a leading zero
DDthAdds a suffix
WWISO-8601 week number of year
0WWAdds a leading zero
MMMMonth in full (eg, "July")
mmmShort month (eg, "Jul")
MMMonth number
0MMAdds leading zero
YYYYFull year
YYTwo digit year
wYYYYFull year with respect to week number
wYYTwo digit year with respect to week number
hhHours
0hhAdds a leading zero
hh12Hours in 12 hour clock
0hh12Hours in 12 hour clock with leading zero
mmMinutes
0mmMinutes with leading zero
ssSeconds
0ssSeconds with leading zero
am or pmLower case AM/PM indicator
AM or PMUpper case AM/PM indicator
TZDTimezone offset
\xUsed to escape a character that would otherwise have special meaning

Note that other text is passed through unchanged, allowing commas, colons or other separators to be used.

Examples

TemplateOutput
DDth MMM YYYY16th February 2011
DDth MMM \M\M\M YYYY16th February MMM 2011
DDth mmm hh:mm:ss16th Feb 2011 11:38:42

datepicker plugin based on Pikaday, by kixam

15th October 2015 at 8:31am

An interactive date picker plugin based on Pikaday. A demo can be found here: http://kixam.github.io/TW5-datePicker/.

datepicker is a TiddlyWiki plugin that allows you to use a widget much like EditTextWidget to pick a date, and optionaly a time. It shows a nice interactive mini-calendar when clicked, allows you to set a date format for display, and is compatible with core date fields such as modified and created.

Days of the Week

23rd January 2015 at 9:46pm

This example tiddler is used to illustrate some of the Filter Operators.

It has a list field containing the following items:

days Operator

purposefilter the input by date
inputa selection of titles
suffixF = the name of a date field, defaulting to modified
parameterD = a number of days, defaulting to 0
outputthose input tiddlers in which field F is D days in the { future | past } or any time { before | after } that, including { past | future }, where D is { positive | negative }
! outputthose input tiddlers in which field F is at least D days in the { future | past }, where D is { positive | negative }

Select tiddlers where a specified date field (default "modified") is withing a specified date range. Time portion is ignored.

Examples

days Operator (Examples)

[days[-14]]
→ tiddlers modified within the last 14 days

[!days:created[-800]]
→ tiddlers created more than 800 days ago

The filter can be used to highlight new items in a list. For example:


<ul>
  <$list filter="[tag[ReleaseNotes]!<currentTiddler>!sort[modified]]">
    <li>
      <$link><$view field="title"/></$link><$list filter="[<currentTiddler>days[-120]]"> @@color:red;^^new^^@@</$list>
    </li>
  </$list>
</ul>

That renders as:

Definitions

25th August 2013 at 3:51pm

Definitions in WikiText

5th December 2013 at 4:04pm

HTML definition lists are created with this syntax:

; Term being defined
: Definition of that term
; Another term
: Another definition

That renders as:

Term being defined
Definition of that term
Another term
Another definition

... and the underlying HTML is:

<dl><dt>Term being defined</dt><dd>Definition of that term</dd><dt>Another term</dt><dd>Another definition</dd></dl>

Deutsch (Deutschland) Edition

19th September 2014 at 10:58pm

Deutsch (Österreich) Edition

19th September 2014 at 10:59pm

Die österreichische Übersetzung von TiddlyWiki ist verfügbar unter:

Siehe auch: Deutsch (Deutschland) Edition.

Dev Thumbnail.jpg

Developers

10th July 2016 at 4:07pm

There are several resources for developers to learn more about TiddlyWiki and to discuss and contribute to its development.

DictionaryTiddlers

28th December 2014 at 9:45am

A dictionary tiddler is a data tiddler containing a simple list of name/value pairs.

Its ContentType is application/x-tiddler-dictionary.

The text field consists of one or more lines of the form name: value.

ColourPalettes, such as the default Vanilla palette, are dictionary tiddlers.

Discover TiddlyWiki

23rd October 2015 at 5:53pm

You've never seen anything like TiddlyWiki. TiddlyWiki is:

a tool,
a toolbox,
a community,
and a philosophy.

TiddlyWiki is a Tool

TiddlyWiki is first and foremost a tool: it is a free downloadable tool for capturing and organising content from the web, from your documents or from your brain. It is a tool for note-taking, bookmarking, pinning, writing, managing to-do lists and projects, collaborating, blogging, and publishing.

In TiddlyWiki you create or paste content into notes called tiddlers, then connect your tiddlers with hyperlinks and tags. You can then quickly retrieve your notes through features such as tag pills, sidebar tabs, and TiddlyWiki's lightning fast search window. You can even dynamically include one tiddler's content inside another - similar to using building blocks - to create articles, lists, presentations and more.

TiddlyWiki is a Toolbox

In addition to being a versatile tool, TiddlyWiki is also a toolbox.

Where other note-taking products hook you with the basic program then charge you for the really helpful features, TiddlyWiki has an ever-expanding collection of completely free visual themes, colour palettes, plugins, widgets and macros, which you can then mix and match so that you can tweak and tailor your TiddlyWiki to get it just the way you want it.

TiddlyWiki is also a Community

We are a community of users and developers who help each other imagine new ways of thinking and organising and create new solutions, so that TiddlyWiki is continually adapting to better serve your needs. TiddlyWiki users and developers share questions and advice at a TiddlyWiki Google group. They also create tutorials, adaptations, and plugins to enhance your TiddlyWiki experience. See the section Community of the TableOfContents for more details.

Finally, TiddlyWiki is a philosophy

The purpose of taking and organising a note (or recording any kind of content) is to be able to retrieve it later. If you can't find your notes in your note-taking system, your note-taking becomes a colossal waste of time.

The TiddlyWiki philosophy is that the best way to take notes is to separate them into tiddlers, the smallest semantic units possible. A tiddler might be an image, a webpage link, a concept, the definition of a term, or a specific customisation such as a macro.

These tiddlers can then be woven together to create longer units: stories, articles, lists, image galleries, and much more. TiddlyWiki's features such as tagging, hyperlinking, and filters are specially designed to help you relate and connect tiddlers together in multiple ways, facilitating your future retrieval of your notes and even helping you see unexpected relationships among your tiddlers and the information they contain.

Document Object Model

28th February 2015 at 1:40pm

The DOM of a web page is a tree-shaped model of its content, maintained internally by the web browser as the user interacts with that content. Each point in the tree is called a node.

When TiddlyWiki is running in a web browser, its widgets are rendered into DOM nodes for display.

When TiddlyWiki is running on Node.js, it uses a fake DOM to simulate the behaviour of a browser.

Documentation Macros

28th February 2015 at 8:28am

The following macros are used throughout TiddlyWiki's documentation. Their names start with a dot to keep them out of the way of names that a user might try experimenting with.

General

MacroUsed forExample
.defthe defining instance of a termwidget
.emminor emphasis within a sentencenot
.placea placeholder for the user to fill intagname
.strongmajor emphasis within a tiddlerImportant!
.worda mention of an ordinary word or phrase"hello world"

Advice

MacroUsed forExample
.tiphints and tips
Turn your screen on, otherwise
you won't be able to see much.
.warningwarning advice
Make a backup of your file
before you upgrade.

Blocks

MacroUsed for
.preamblean introductory sentence that stands apart from the rest of the tiddler

Tiddlers and fields

MacroUsed forExample
.tida tiddler titleExample
.taga tagExample
.fielda field nameexample
.valuea field valueexample value
.opa filter operatorbacklinks
.vara variable or macro namecurrentTiddler
.wida widget name$list
.attran attribute namefilter
.parama macro parameter nametext

Links

MacroUsed forExample
.linka link containing WikiTextan example
.clinka code link<$list>
.dlinka link on a defining instance of a termwidget
.dlink-exan external link on a defining instance of a termExample
.flinka link to a fieldlist
.mlinka link to a macroqualify
.mlink2a link to a macro, with specified targetfoo
.olinka link to an operatorprefix
.olink2a link to an operator, with specified targetfoo
.vlinka link to a variablecurrentTiddler
.vlink2a link to a variable, with specified targetfoo
.wlinka link to a widget$button
.wlink2a link to a widget, with specified textfoo

User interface

MacroUsed forExample
.keya key on the keyboardEscape
.keycomboa key combinationCtrl+Enter

Tabs

MacroUsed forExample
.sidebar-tabthe name of a sidebar tabMore
.more-tabthe name of a subtab of the More tabShadows
.info-tabthe name of a tiddler info tabFields
.controlpanel-tabthe name of a Control Panel tabSettings
.advancedsearch-tabthe name of an Advanced Search tabFilter
.toc-tabname of the tw5.com TOC tabContents
.example-taban example tab nameNotes

Parameters for .sidebar-tab

OpenOpen
RecentRecent
ToolsTools
MoreMore

Parameters for .more-tab

AllAll
RecentRecent
TagsTags
MissingMissing
DraftsDrafts
OrphansOrphans
TypesTypes
SystemSystem
ShadowsShadows

Parameters for .info-tab

ToolsTools
ReferencesReferences
TaggingTagging
ListList
ListedListed
FieldsFields
AdvancedAdvanced

Parameters for .controlpanel-tab

InfoInfo
AppearanceAppearance
SettingsSettings
SavingSaving
PluginsPlugins

Parameters for .advancedsearch-tab

StandardStandard
SystemSystem
ShadowsShadows
FilterFilter

Buttons

MacroUsed forExample
.buttona standard button name and icon new tiddler

Parameters for .button

Tiddler toolbar

clone clone
close close
close-others close others
edit edit
export-tiddler export tiddler
info info
more-tiddler-actions more
new-here </g> new here
new-journal-here 25 new journal here
permalink permalink

Edit-mode toolbar

cancel cancel
delete delete
save ok

Page toolbar

advanced-search advanced search
close-all close all
control-panel control panel
encryption encryption
export-page export all
full-screen full-screen
home home
import import
language language
more-page-actions more
new-journal 25 new journal
new-tiddler new tiddler
permaview permaview
refresh refresh
save-wiki save changes
storyview storyview
tag-manager tag manager
theme theme

Documentation Style Guide

17th January 2015 at 3:25pm

The documentation for TiddlyWiki tries to follow a consistent editorial style. It has two main areas, each with its own tone and audience:

We keep the two areas distinct. This avoids overwhelming relative newcomers, while still providing quick access to the information that expert users need.

Additional topics:

Dominant Append

17th September 2015 at 8:36pm

Filters manipulate sets of titles in which no title may appear more than once. Furthermore, they often need to append one such set to another.

This is done in such a way that, if a title would be duplicated, the earlier copy of that title is discarded. The titles being appended are dominant.

For example, if a selection contains Andrew Becky Clara Daniel and Andrew Barney Clara Daisy is then appended to it, the result is Becky Daniel Andrew Barney Clara Daisy.

done

5th July 2013 at 11:27am

DraftMechanism

20th August 2013 at 2:24pm

Tiddlers that have a draft.of field are treated as pending drafts of the tiddler specified in the field. Draft tiddlers should also have a draft.title field that specifies the title that will be given to the tiddler when it is saved.

Several features work in concert to give the desired behaviour for draft tiddlers:

  • The ListWidget can optionally render draft tiddlers through a different template
  • The NavigatorWidget incorporates handlers for the following events:
    • tm-new-tiddler for creating a new tiddler in draft mode
    • tm-edit-tiddler for moving a tiddler into edit mode
    • tm-cancel-tiddler for cancelling a tiddler out of edit mode
    • tm-save-tiddler for saving a draft tiddler
  • Draft tiddlers are automatically excluded from search operations

DropzoneWidget

30th October 2013 at 8:37am

Introduction

The dropzone widget creates an area into which the user can drag files and other objects. It also supports pasting via the clipboard, although browser support is currently limited.

It sends a WidgetMessage: tm-import-tiddlers carrying a JSON representation of the tiddlers to be imported up through its parents. This message usually trapped by the NavigatorWidget which adds the tiddlers to the store and updates the story to display them.

Content and Attributes

The dropzone widget has no attributes, and displays any contained content within the dropzone.

Display

The dropzone widget creates an HTML <div class="tc-dropzone"> to contain its content. During a drag operation the class tc-dragover is added. CSS is used to provide user feedback.

Data types supported

The following data transfer types are supported:

  • text/vnd.tiddler - a list of tiddlers in JSON format (this format is generated by the LinkWidget)
  • text/plain - plain text
  • text/uri-list - a list of URIs as a single tiddler

dumpvariables Macro

21st February 2015 at 3:14pm

The dumpvariables macro returns a table showing the values of all variables and macros that exist at that position in the widget tree.

It is useful for debugging and exploring TiddlyWiki's internals.

Placeholders are replaced with values in the normal way, but using the default values for all macro parameters.

Parameters

(none)

Examples

dumpvariables Macro (Examples)

21st February 2015 at 3:14pm

<$set name="EXAMPLE" value="123..789">
<$set name="EXAMPLE2" value="456">

<<dumpvariables>>

</$set>
</$set>

each Operator

3rd February 2015 at 6:42pm
purposeselect one of each group of input titles by field
inputa selection of titles
suffixoptionally, list-item
parameterF = the name of a field, defaulting to title
outputa selection containing the first input title encountered for each distinct value of field F

Each input title is processed in turn. The value of field F in the corresponding tiddler is examined.

each
As long as the field's value has not been encountered before, the title is appended to the output.
each:list-item
The value is treated as a title list. Each title in the list considered in turn. If it has not been encountered before, it is appended to the output.

If a tiddler doesn't contain field F, it is treated as if the field's value was empty.

Examples

each Operator (Examples)

18th January 2015 at 6:31pm

[each[color]]

[sort[title]each[type]]
→ the alphabetically first tiddler of each type

[each:list-item[list]]
→ all tiddlers listed anywhere in the core list field

For an example of using the each operator to generate a two-tier list of groups and members, see GroupedLists.

eachday Operator

10th February 2015 at 4:16pm
purposeselect one of each group of input titles by date
inputa selection of titles
parameterF = the name of a date field, defaulting to modified
outputa selection containing the first input title encountered for each distinct value (ignoring times of day) of field F

Each input title is processed in turn. The value of field F in the corresponding tiddler is examined, and as long as this indicates a date that has not been encountered before, the title is appended to the output.

If a tiddler doesn't contain field F, it contributes nothing to the output.

Examples

eachday Operator (Examples)

18th January 2015 at 6:31pm

[eachday[created]]
→ the first tiddler created on each day

For an example of using the eachday operator to generate a two-tier list of groups and members, see GroupedLists.

Edición en Castellano

11th May 2016 at 5:02pm

La edición española de TiddlyWiki se encuentra aquí:

EditBitmapWidget

20th February 2015 at 4:21pm

Introduction

The edit bitmap widget provides a user interface in the browser for editing bitmap tiddlers. It is currently a primitive proof-of-concept, supporting resizing and painting with a single color and line width.

Content and Attributes

The content of the <$edit-bitmap> widget is ignored.

AttributeDescription
tiddlerThe tiddler to edit (defaults to the current tiddler)

Configuration

The edit bitmap widget can be configured with these system tiddlers:

Editing Tiddlers with Emacs

19th September 2014 at 5:15pm

Michael Fogleman has written an Emacs major mode called tid-mode, which is for editing TiddlyWiki .tid files. It is derived from text-mode, uses the useful minor modes org-struct and subword, and updates the modified times when you save a .tid file.

He also wrote two helper functions for using TiddlyWiki in Emacs. The first opens a tiddlers directory in Dired; the second opens TiddlyWiki in the browser.

(defun open-wiki ()
  "Opens a TiddlyWiki directory in Dired."
  (interactive)
  (dired "~/Dropbox/wiki/tiddlers/"))
(defun browse-wiki ()
  "Opens TiddlyWiki in the browser."
  (interactive)
  (browse-url "127.0.0.1:8080/"))

This latter function may require specifying a browser:

(setq browse-url-browser-function 'browse-url-generic
      browse-url-generic-program "chromium")

You can bind either of these functions with the global-set-key function:

(global-set-key (kbd "C-c w") 'open-wiki)

At the moment, these are not integrated into tid-mode.

Editing Tiddlers with Vim

11th January 2016 at 7:00pm

Devin Weaver has written a Vim plugin at https://github.com/sukima/vim-tiddlywiki

It supports most of the TiddlyWiki syntax and includes a filetype plugin which will auto update the modified field.

Édition en Français (France)

23rd November 2014 at 4:29pm

La traduction en Français (France) de TiddlyWiki démarre ici :

editiondescription Operator

3rd February 2015 at 6:45pm
purposeselect the descriptions of the input editions
inputa selection of edition names
parameternone
outputthe description string of each edition in the input

Each input title is processed in turn, ignoring any that is not the name of a TiddlyWiki edition.

Note
This operator is not available when TiddlyWiki is running in a web browser.

Editions

7th January 2016 at 10:21pm

TiddlyWiki is distributed in several distinct editions that are tuned for specific purposes.

An edition consists of the TiddlyWiki core components along with plugins, documentation and sample content to get you up and running as quickly as possible.

You can mix and match the components of these editions, to make a unique solution for your particular application.

Note that editions should not be confused with the platforms on which TiddlyWiki runs (eg as a single HTML file vs. under Node.js)

editions Operator

3rd February 2015 at 6:46pm
purposeselect the names of all the TiddlyWiki editions
inputignored
parameternone
outputthe name of each TiddlyWiki edition, in alphabetical order
Note
This operator is not available when TiddlyWiki is running in a web browser.

EditionsCommand

29th October 2014 at 11:43am

Lists the names and descriptions of the available editions. You can create a new wiki of a specified edition with the --init command.

--editions

EditTextWidget

24th December 2015 at 2:39pm

Introduction

The edit text widget provides a user interface in the browser for editing text tiddler fields. The editing element is dynamically bound to the underlying tiddler value: changes to the tiddler are instantly reflected, and any edits are instantly propogated.

By default, the edit text widget generates a <textarea> as the HTML editing element when the text field is edited, and a <input type="text"> element otherwise. This behaviour can be overridden with the tag and type attributes.

Content and Attributes

The content of the <$edit-text> widget is ignored.

AttributeDescription
tiddlerThe tiddler to edit (defaults to the current tiddler)
fieldThe field to edit (defaults to text). Takes precedence over the index attribute
indexThe index to edit
defaultThe default text to be provided when the target tiddler doesn't exist
classA CSS class to be assigned to the generated HTML editing element
placeholderPlaceholder text to be displayed when the edit field is empty
focusPopupTitle of a state tiddler for a popup that is displayed when the editing element has focus
focusSet to "yes" or "true" to automatically focus the editor after creation
tagOverrides the generated HTML editing element tag. Use textarea for a multi-line editor
typeOverrides the generated HTML editing element type attribute
sizeThe size of the input field (in characters)
autoHeightEither "yes" or "no" to specify whether to automatically resize textarea editors to fit their content (defaults to "yes")
minHeightMinimum height for automatically resized textarea editors, specified in CSS length units such as "px", "em" or "%"
rowsSets the rows attribute of a generated textarea

Notes

One trap to be aware of is that the edit text widget cannot be used to edit a field of the tiddler that contains it. Each keypress results in the tiddler being re-rendered, which loses the cursor position within the text field.

Instead, place the edit text widget in a template that references the tiddler you want to modify.

For example, if you wanted the tiddler GettingStarted to edit the value of the "myconfig" field of the tiddler "AppSettings", you might do so by creating a separate tiddler "ChangeAppSettings" that contains the following:

<$edit-text tiddler="AppSettings" field="myconfig"/>

And reference the template in any other tiddler (e.g. GettingStarted) with {{ChangeAppSettings}}.

This works when your use of the tiddler is not the AppSettings itself which would cause a recursion problem. In this latter case you have to save the fields to a temporary (or alternative) tiddler (sort of the reverse of above) like so:

<$edit-text tiddler="StoreAppSettings" field="myconfig"/>

In short the EditTextWidget can not change properties of the tiddler it is embedded in or part of. It can only change fields of other tiddlers. One could use ShadowTiddlers to accomplish the field storage if needed.

EditWidget

20th February 2015 at 4:12pm

Introduction

The edit widget provides a general purpose interface for editing a tiddler. It dynamically chooses the appropriate widget depending on the type of the tiddler (currently either the EditTextWidget or the EditBitmapWidget).

Content and Attributes

The content of the <$edit> widget is ignored.

AttributeDescription
tiddlerThe tiddler to edit (defaults to the current tiddler)
fieldThe field to edit (defaults to text). Takes precedence over the index attribute
indexThe index to edit
classA CSS class to be added the generated editing widget

Empty Edition

2nd July 2016 at 9:42am

The "empty" edition of TiddlyWiki is a vanilla distribution, with no additional plugins or configuration beyond the core code.

The empty edition can be downloaded from:

Your browser may ask you to accept the download before it begins

Encryption

10th June 2016 at 9:33am

When used as a single HTML file, TiddlyWiki5 allows content to be encrypted using the Stanford JavaScript Crypto Library.

  1. Switch to the Tools tab in the sidebar and look for the button with a padlock icon
  2. If the button is labelled set password then the current wiki is not encrypted. Clicking the button will prompt for a password that will be used to encrypt subsequent saves
  3. If the button is labelled clear password then the current wiki is already encrypted. Clicking the button will remove the password so that subsequent saves will be unencrypted
  4. Optionally, open the saved file in a text editor and verify that your data is encrypted
  5. Open the file in your browser. You will be prompted for a password before the content is displayed

Note that TiddlyWiki has two other unrelated features concerned with passwords/encryption:

  • The ability to set a password when saving to TiddlySpot. This is done in the "Saving" tab of control panel .
  • The ability to use standard HTTP basic authentication with the Node.js server configuration. This is done on the command line with the ServerCommand. Combined with SSL, this gives the same level of transit encryption as you'd get with online services like Google or Dropbox, but there is no encryption of data on disk

EncryptWidget

30th October 2013 at 8:37am

Introduction

The encrypt widget renders a filtered list of tiddlers to an encrypted block with the password currently held in the PasswordVault. The encrypted block can subsequently be decrypted by the TiddlyWiki5 BootMechanism. See the EncryptionMechanism for more details.

Content and Attributes

The content of the <$encrypt> widget is ignored.

AttributeDescription
filterFilter defining the tiddlers to be included in the encrypted block. If not specified then all non-system tiddlers are used

EntityWidget

14th March 2016 at 4:56pm

Introduction

The entity widget displays a specified HTML character entity.

Content and Attributes

The content of the <$entity> widget is not used.

AttributeDescription
entityThe entity to display (eg, &times;)

Environment Variables on Node.js

12th September 2014 at 3:18pm

TiddlyWiki on Node.js supports the following OS environment variables for specifying a colon-delimited list of paths to search for plugins and editions:

  • TIDDLYWIKI_PLUGIN_PATH - Search path for ordinary plugins
  • TIDDLYWIKI_THEME_PATH - Search path for themes
  • TIDDLYWIKI_LANGUAGE_PATH - Search path for languages
  • TIDDLYWIKI_EDITION_PATH - Search path for editions (used by the InitCommand)

The additional paths should each point to folders structured like the equivalent directories in the TiddlyWiki5 GitHub repository: the plugin, theme and language directories contain publisher/pluginname/<files> while the edition directories contain editionname/<files>

For example:

TIDDLYWIKI_PLUGIN_PATH=~/MyPluginStore
tiddlywiki mywiki --build index

Eucaly's Tiddly World

13th September 2014 at 11:39am

I collect my tw5 creations on-line as http://eucaly-tw5.tiddlyspot.com/

Available Plugins :

Example for tag Macro

This tiddler exists to demonstrate the tag macro.

Example Table of Contents: Expandable

21st February 2015 at 8:37pm

<div class="tc-table-of-contents">
<<toc-expandable "Contents">>
</div>

Example Table of Contents: Selectively Expandable

21st February 2015 at 8:39pm

<div class="tc-table-of-contents">
<<toc-selective-expandable "Contents">>
</div>

Example Table of Contents: Simple

21st February 2015 at 8:37pm

<div class="tc-table-of-contents">
<<toc "Contents">>
</div>

Example Table of Contents: Sorted Expandable

21st February 2015 at 8:39pm

<div class="tc-table-of-contents">
<<toc-expandable "Contents" "sort[title]">>
</div>

Example Table of Contents: Tabbed External

21st February 2015 at 9:00pm

<$macrocall
	$name="toc-tabbed-external-nav"
	tag="TableOfContents"
	selectedTiddler="$:/temp/toc/selectedTiddler"
	unselectedText="<p>Select a topic in the table of contents. Click the arrow to expand a topic.</p>"
	missingText="<p>Missing tiddler.</p>"
/>

Example Table of Contents: Tabbed Internal

21st February 2015 at 9:00pm

<$macrocall
	$name="toc-tabbed-internal-nav"
	tag="TableOfContents"
	selectedTiddler="$:/temp/toc/selectedTiddler"
	unselectedText="<p>Select a topic in the table of contents. Click the arrow to expand a topic.</p>"
	missingText="<p>Missing tiddler.</p>"
/>

Examples

2nd June 2016 at 6:27pm

This collection showcases inspiring and interesting examples of TiddlyWiki being used in the wild. Submit new entries to this collection via GitHub, Twitter or by posting in the TiddlyWiki Groups.

ExternalImages

12th September 2014 at 3:13pm

External images in TiddlyWiki are tiddlers that point to the URI of an image, rather than embedding the full image data. They can perform better than embedded images, particularly with large numbers or sizes of images. However, using them breaks the single file pattern of TiddlyWiki.

External images are used in the browser. They can be created by the Node.js configuration when it builds a TiddlyWiki, or they can be created manually within the browser.

What is an External Image

An external image is an ordinary image tiddler that has a _canonical_uri field containing the URI of the image. The URI can be absolute or relative to the HTML document. If the canonical URI is provided then the text field of the tiddler is ignored and so should be omitted.

Manually Creating External Images

To manually create an external image just create the tiddler with the appropriate image content type, and add a _canonical_uri field with a URI pointing to the actual image location.

IMPORTANT: Double-check your spelling. _canonical_uri is spelled URI, not URL.

Creating external images under Node.js

The following steps are used to create a static HTML file version of a wiki accompanied by an images folder containing the referenced external images:

  1. Create image tiddlers in your TiddlyWikiFolders in the usual way
  2. Save the images as separate files (by convention, in a subfolder named images)
  3. Externalise the image tiddlers by giving them a _canonical_uri field
  4. Save the main HTML file

Note the image files must be saved before they are externalised. Externalising them destroys the text field within the in-memory copy of the wiki store, meaning that attempts to save them will fail.

For an example see the externalimages build target of the demo tw5.com wiki:

--savetiddlers [is[image]] images
--setfield [is[image]] _canonical_uri $:/core/templates/canonical-uri-external-image text/plain
--setfield [is[image]] text "" text/plain
--rendertiddler $:/core/save/all externalimages.html text/plain

Saving Separate Image Files

The following --savetiddlers command can be used to save the images of a wiki into an images subfolder:

--savetiddlers [is[image]] images

Externalising Image Tiddlers

Two --setfield commands are used: the first sets the _canonical_uri field to a URI derived from the title of the tiddler, and the second clears the text field.

--setfield [is[image]] _canonical_uri $:/core/templates/canonical-uri-external-image text/plain
--setfield [is[image]] text "" text/plain

The template tiddler $:/core/templates/canonical-uri-external-image contains:

<!--

This template is used to assign the ''_canonical_uri'' field to external images.

Change the `./images/` part to a different base URI. The URI can be relative or absolute.

-->
./images/<$view field="title" format="doubleurlencoded"/>

Note that these operations modify the tiddlers in the wiki store and so may affect the operation of subsequent commands.

Using External Images

You can't edit an external image directly in the browser except by changing the URI field to point to a different image.

Features

7th January 2016 at 10:58pm

FederatialLimited

25th August 2013 at 5:04pm

Federatial Limited is a software consultancy founded by JeremyRuston specializing in understanding the impact of the web on the way that we work together.

See http://federatial.com/ and http://twitter.com/federatial for more information.

field Operator

3rd February 2015 at 6:47pm
purposefilter the input by field
inputa selection of titles
suffixF = the name of a field
parameterS = a possible value of field F
outputthose input tiddlers in which field F has the value S
! outputthose input tiddlers in which field F does not have the value S

If S is empty, field will match both of the following:

  • tiddlers that don't contain field F
  • tiddlers in which field F exists but has an empty value

The syntax of a filter step treats any unrecognised filter operator as if it was the suffix to the field operator. See the examples.

Examples

field Operator (Examples)

18th January 2015 at 6:32pm

[field:author[JeremyRuston]]
→ plugins authored by JeremyRuston

[plugin-type[theme]author[JeremyRuston]]
→ themes authored by JeremyRuston

FieldMangler Widget (Examples)

6th July 2015 at 6:29pm


<$fieldmangler>
Add tag ''example'' to this tiddler (current)<$button message="tm-add-tag" param="example">{{$:/core/images/new-button}}</$button>
<br>
Remove tag ''example'' to this tiddler (current)<$button message="tm-remove-tag" param="example">{{$:/core/images/delete-button}}</$button>
</$fieldmangler>

FieldManglerWidget

20th February 2015 at 4:12pm

Introduction

The field mangler widget manipulates the fields and tags of a tiddler. It does so in response to the following Messages:

MessageDescription
tm-remove-fieldRemove the field specified in event.param
tm-add-fieldAdd the field specified in event.param
tm-remove-tagRemove the tag specified in event.param
tm-add-tagAdd the tag specified in event.param

Content and Attributes

The field mangler widget displays any contained content, and responds to Messages dispatched within it.

AttributeDescription
tiddlerTitle of the tiddler to manipulate (defaults to the current tiddler)

Examples

fields Operator

3rd February 2015 at 6:48pm
purposeselect all field names of the input titles
inputa selection of titles
parameternone
outputall the field names contained in the input tiddlers

Each input title is processed in turn. Its list of field names is retrieved (in no particular order) and then dominantly appended to the operator's output.

Examples

fields Operator (Examples)

18th January 2015 at 6:32pm

[[HelloThere]fields[]]
→ fields of HelloThere

[tag[Common Operators]fields[]]
→ fields of all tiddlers tagged as Common Operators

FieldsWidget

20th February 2015 at 4:12pm

Introduction

The fields widget renders each field of a specified tiddler through a simple text template. A list of fields to exclude can be provided. It is used internally by TiddlyWiki5, notably by the FileSavingMechanism.

Template Handling

The provided template is rendered with the following special substitutions:

SymbolSubstitution
$name$Field name
$value$Field value
$encoded_value$HTML encoded form of field value

Content and Attributes

The content of the <$fields> widget is ignored.

AttributeDescription
tiddlerTitle of the tiddler from which the fields are to be displayed (defaults to the current tiddler)
templateText of the template (see above)
excludeLists of fields to be excluded (defaults to "text")
stripTitlePrefixIf set to "yes" then curly bracketed prefixes are removed from titles (for example {prefix}HelloThere converts to HelloThere)

The stripTitlePrefix attribute is used when building TiddlyWiki Classic; see editions/tw2 in the TiddlyWiki5 repo.

Filter Expression

24th January 2015 at 6:49pm
whitespace+-run

A filter expression is the outermost level of the filter syntax. It consists of one or more runs.

A run's input is normally a list of all the non-shadow tiddler titles in the wiki (in no particular order). But the + prefix can change this.

  • If a run has no + or - prefix, its output titles are dominantly appended to the filter's output.
  • If a run has a - prefix, its output titles are removed from the filter's output (if they were present).
  • If a run has a + prefix, it receives the filter's output so far as its input. The filter's output is then completely replaced by the run's output. Any subsequent run reverts to receiving all tiddler titles as its input, unless it too has a + prefix.

In concise technical terms:

RunInterpretationOutput
rununion of sets... OR run
+runintersection of sets... AND run
-rundifference of sets... AND NOT run

Filter Operators

17th September 2015 at 8:36pm

A filter operator is a predefined keyword attached to an individual step of a filter. It defines the particular action of that step.

The following table lists all the core operators. The commonest ones are checkmarked. The third column indicates which operators allow the ! prefix to reverse their meaning.

Operator Purpose Neg
all find all titles of a fundamental category
backlinks find the titles that link to each input title
days filter the input by date !
each select one of each group of input titles by field
eachday select one of each group of input titles by date
field filter the input by field !
fields select all field names of the input titles
get select all values of a field in the input titles
getindex
has filter the input by field existence !
haschanged filter the input by tiddler modification status !
indexes select all data properties of the input titles
is filter the input by fundamental category !
links find the titles linked to by each input title
list select titles via a list field !
listed find the titles that list the input titles
regexp filter the input by pattern-matched field !
sameday filter the input by date
search filter the input by searching tiddler content !
title select a single title !
Order Operators
after find which input title follows a specified one
before find which input title precedes a specified one
bf same as rest
butfirst same as rest
butlast discard the last N input titles
first select the first N input titles
last select the last N input titles
limit select the first or last N input titles !
next find which titles in a list field follow the input ones
nsort sort the input by number field !
nsortcs sort the input titles by number field, treating upper and lower case as different !
nth select the Nth input title
previous find which titles in a list field precede the input ones
rest discard the first N input titles
reverse reverse the order of the input titles
sort sort the input by text field !
sortcs sort the input by text field, treating upper and lower case as different !
Listops Operators
allafter discard all items except those after the marker
allbefore discard all items except those before the marker
append append a range of items from an array to the list
move move marker N places in the list
prepend prepend a range of items from an array to the list
putafter move N trailing items after the marker
putbefore move N trailing items before the marker
putfirst move N trailing items to the head of the list
putlast move N leading items to the tail of the list
remove remove a range of items in an array from the current list
replace replace marker with N trailing items
sortby sort the current list in the order of the list referenced in the operand
String Operators
addprefix extend each input title with a prefix
addsuffix extend each input title with a suffix
prefix filter the input titles by how they start !
removeprefix filter the input titles by how they start, deleting that prefix
removesuffix filter the input titles by how they end, deleting that suffix
splitbefore select a delimited prefix from each input title
suffix filter the input titles by how they end !
Tag Operators
tag filter the input by tag !
tagging find the tiddlers that have the input tags
tags select all tags of the input tiddlers
untagged discard any input titles that have tags !
Special Operators
commands select the titles of all the Node.js commands
editiondescription select the descriptions of the input editions
editions select the names of all the TiddlyWiki editions
modules select the names of all modules of the input module types
moduletypes select the names of all TiddlyWiki module types
plugintiddlers select all shadow titles in the input plugins
shadowsource select the plugin titles that contain the input shadows
storyviews select the names of all the story views

A typical step is written as [operator[parameter]], although not all of the operators need a parameter.

Most steps process the selection of titles that are supplied as their input, but a few construct an entirely new selection instead. For the exact rules, see Filter Syntax.

Filter Parameter

20th February 2015 at 3:25pm
[anything but ]]{anything but }}<anything but >>

The parameter to a filter operator can be:

hard
[like this]
The parameter is the exact text that appears between the square brackets.
soft
indirect
{like this}
The parameter is the text indicated by the text reference whose name appears between the curly brackets, i.e. a field of a specified tiddler, or the value of a property of a specified data tiddler.
variable
<like this>
The parameter is the current value of the variable whose name appears between the angle brackets. Macro parameters are not supported.

Filter Run

29th January 2015 at 1:37pm
[step]anything but [ ] or whitespace"anything but ""'anything but ''

A run consists of steps, and it outputs a selection that contributes to a larger filter expression.

The steps are processed from left to right. The input to the first step is same as the input to the run. For each subsequent step, the input is the output of the previous step.

The output of a filter step depends on its operator:

  • Most operators derive their output from their input. For example, many of them output a subset of their input, and thus truly live up to the name of "filters", narrowing down the overall output of the containing run. These operators are called selection modifiers.
  • A few operators ignore their input and generate an independent output instead. These are called selection constructors: they construct an entirely new selection.

A good example of a constructor is title. The output of [title[A]title[B]] is just B. But the field operator is a modifier, so [title[A]field:title[B] outputs nothing at all.

The lower three options in the diagram match syntax like HelloThere, "HelloThere", 'HelloThere' and "Filter Operators". They are short for [title[...]].

The quoted options exist to support titles that contain square brackets, as in "An [[[[Unusual]]]] Tiddler".

Filter Step

24th January 2015 at 7:10pm
!operator:suffixparameter

A step represents a single operation within a filter.

In programming terms, it is akin to a function call to which the step's input is passed as an implicit parameter. A step's output is a selection that contributes to a run and hence to the entire filter expression that contains it.

The step's operator is drawn from a list of predefined keywords, which can be extended by plugins. Any unrecognised operator is treated as if it was the suffix to the field operator. If a step's operator is omitted altogether, it defaults to title.

The suffix is additional text, often the name of a field, that extends the meaning of certain operators.

Many steps require an explicit parameter value, also known as an operand, that further defines what the step is to do.

Filter Syntax

24th January 2015 at 6:42pm
Filters follow a grammar that is presented here, using railroad diagrams, for those who find formal syntax descriptions helpful. However, you can learn to write filters without needing to understand this group of tiddlers.

A filter is a pipeline for transforming an input into an output. Both the input and the output are ordered sets of titles of things like tiddlers and fields.

Filters are expressions constructed from smaller building blocks, called runs and steps, each of which also transforms an input to an output.

A filter starts with an empty output. Its runs are processed from left to right, progressively modifying the output.

Here are details of the various building blocks involved:

Filter Whitespace

25th January 2015 at 10:52am
spacetablinefeedreturnvertical tabformfeed

Whitespace characters can appear between each run of a filter expression.

Filters

21st February 2015 at 10:54pm

You can think of TiddlyWiki as a database in which the records are tiddlers. A database typically provides a way of discovering which records match a given pattern, and in TiddlyWiki this is done with filters.

A filter is a concise notation for selecting a particular set of tiddlers, known as its output. Whenever TiddlyWiki encounters a filter, it calculates the output. Further work can then be done with just those tiddlers, such as counting or listing them.

The following example passes a filter to the list-links macro to display a list of all tiddlers whose titles start with the letter H:

<<list-links "[prefix[H]]">>

A filter's output can change as tiddlers are added and deleted in the wiki. TiddlyWiki recalculates on the fly, automatically updating any filter-based counts or lists as well.

Advanced Search has a Filter tab that makes it easy to experiment with filters.

Find out more:

First

21st February 2015 at 7:46pm

This is an example tiddler. See Table-of-Contents Macros (Examples).

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

first Operator

3rd February 2015 at 7:19pm
purposeselect the first N input titles
inputa selection of titles
parameterN = an integer, defaulting to 1
outputthe first N input titles

first Operator (Examples)

18th January 2015 at 6:32pm

These examples make use of the Days of the Week tiddler.

[list[Days of the Week]first[]]

[list[Days of the Week]first[5]]

[tag[Filter Operators]!sort[title]first[]]

FirstOne

21st February 2015 at 7:46pm

This is an example tiddler. See Table-of-Contents Macros (Examples).

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

FirstThree

21st February 2015 at 7:46pm

This is an example tiddler. See Table-of-Contents Macros (Examples).

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

FirstTwo

21st February 2015 at 7:46pm

This is an example tiddler. See Table-of-Contents Macros (Examples).

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

Formatting in WikiText

6th June 2016 at 2:59pm

Available character formatting includes:

  • `backticks` for code ( )
    • Alternatively, ``double backticks allows `embedded` backticks``
  • ''bold'' for bold text ( )
  • //italic// for italic text ( )
  • __underscore__ for underscored text ( )
  • ^^superscript^^ for superscripted text ( )
  • ,,subscript,, for subscripted text ( )
  • ~~strikethrough~~ for strikethrough text ( )

See also: Code Blocks in WikiText

Formatting text in TiddlyWiki

19th September 2014 at 10:48pm

Within the text of a tiddler you can use special formatting called WikiText to control how the text is displayed.

Simple Formatting

At its simplest, WikiText lets you use familiar word-processing features like bold, italic, lists and tables. For example:

The ''quick'' brown ~~flea~~ fox //jumps// over the `lazy` dog

… displays as:

The quick brown flea fox jumps over the lazy dog

Working with Tiddlers

In WikiText, you can link to tiddlers using double square brackets, or by taking advantage of the automatic linking of CamelCase words:

This is a link to HelloThere, and one to [[History of TiddlyWiki]]

… displays as:

This is a link to HelloThere, and one to History of TiddlyWiki

Macros

Macros let you package repetitive fragments of WikiText so that you can easily reuse them.

For example, here is the definition of a macro that generates a YouTube video URL from its unique identifier:

\define youtube(video)
https://www.youtube.com/watch?v=$video$
\end

With that definition in place, <<youtube 1g66s7UbyuU>> generates the URL https://www.youtube.com/watch?v=1g66s7UbyuU

Advanced WikiText

Advanced WikiText features allow you to produce automated lists and interactive features like dropdown menus. In fact, the entire user interface of TiddlyWiki itself is written in WikiText, so any feature that you see in TiddlyWiki can be adapted for use in your own wikis.

Some of the advanced features require complex coding. TiddlyWiki includes several built-in macros that simplify common user interface tasks, like tabs, tables of content, and lists of tiddlers.

Find out more

See WikiText for a detailed introduction to writing WikiText.

Forums

10th June 2016 at 9:50am

Users

The TiddlyWiki discussion groups are mailing lists for talking about TiddlyWiki: requests for help, announcements of new releases and plugins, debating new features, or just sharing experiences. You can participate via the associated website, or subscribe via email.

Developers

New releases of TiddlyWiki, TiddlyDesktop and TiddlyFox are announced via the discussion groups and Twitter (you can also subscribe to an Atom/RSS feed of TiddlyWiki releases from GitHub)

Documentation

There is also a discussion group specifically for discussing TiddlyWiki documentation improvement initiatives: http://groups.google.com/group/tiddlywikidocs

Fourth

21st February 2015 at 7:46pm

This is an example tiddler. See Table-of-Contents Macros (Examples).

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

Friday

18th January 2015 at 1:15pm

This example tiddler is used to illustrate some of the Filter Operators.

Full Edition

2nd June 2016 at 6:15am

The "full" edition of TiddlyWiki consists of all the available languages, themes and plugins for TiddlyWiki. It is intended for use in testing TiddlyWiki - in particular, for switching between all the available language plugins.

The full edition can be downloaded from:

http://tiddlywiki.com/editions/full/

Future Proof

12th September 2014 at 3:50pm

TiddlyWiki is designed with the long term needs of its users in mind. Because it is OpenSource and needs no infrastructure, we can be confident that all we'll need to access a TiddlyWiki file even in the far future is an ordinary HTML browser. If you're starting to use TiddlyWiki at the beginning of your career you can be confident that it will carry you through to retirement.

Generating Static Sites with TiddlyWiki

22nd June 2016 at 12:13pm

TiddlyWiki5 can be used to generate static HTML representations of a TiddlyWiki that doesn't need JavaScript.

There is much flexibility in how the static HTML is generated. The following scenarios are all illustrated on http://tiddlywiki.com.

Wiki Snapshots and Tiddler Snapshots

You can explore a static representation of this TiddlyWiki at static.html. That file is a static snapshot of the current DefaultTiddlers. Any tiddlers that it links to are referred to via URLs of the form /static/HelloThere.html that point to static snapshots of individual tiddlers. The tiddler HTML files reference a static.css stylesheet file.

The following commands are used to generate the sample static version of the TiddlyWiki5 site:

--rendertiddlers [!is[system]] $:/core/templates/static.tiddler.html static text/plain
--rendertiddler $:/core/templates/static.template.html static.html text/plain
--rendertiddler $:/core/templates/static.template.css static/static.css text/plain

The first RenderTiddlersCommand generates the HTML representations of individual tiddlers, the second RenderTiddlerCommand saves the static version of the DefaultTiddlers, and the final RenderTiddlerCommand saves the stylesheet. (All the files are placed in the output folder of the wiki folder).

Wiki Snapshot with Internal Links

It is also possible to produce a single HTML file that contains static representations of tiddlers, and uses standard HTML anchor links to jump between them.

For example: alltiddlers.html

The example is built by the following commands:

--rendertiddler $:/core/templates/alltiddlers.template.html alltiddlers.html text/plain

get Operator

3rd February 2015 at 6:50pm
purposeselect all values of a field in the input titles
inputa selection of titles
parameterF = the name of a field
outputthe values of field F in each of the input titles

Each input title is processed in turn. If the corresponding tiddler contains field F, and the value of this field is not empty, then its value is appended to the output.

Unlike most other Filter Operators, the selection output by get can contain duplicates. To avoid duplicates, use each[F]get[F].

Examples

get Operator (Examples)

24th January 2015 at 8:18pm

[all[current]get[draft.of]]
→ the title of the tiddler of which the current tiddler is a draft

[get[tags]]

[each[tags]get[tags]]

Get the Ring

25th August 2013 at 3:31pm

This is a sample task for the TaskManagementExample

getindex Operator

3rd February 2015 at 2:00pm

Each input title is processed in turn, and is ignored if it does not denote a data tiddler. If the tiddler contains property P, the value of that property is dominantly appended to the output.

Examples

getindex Operator (Examples)

3rd February 2015 at 2:00pm

[[$:/palettes/Vanilla]getindex[background]]
→ returns the value at index background of the DataTiddler $:/palettes/Vanilla

[tag[$:/tags/Palette]getindex[background]]
→ returns all background colors defined in any of the ColourPalettes

Getting Started Video

19th September 2014 at 5:10pm

This brief tutorial takes you through the basics of saving changes with a standalone TiddlyWiki file.

Note that the video is a bit out of date, and will be updated soon!

GettingStarted

22nd June 2016 at 12:13pm

Brief instructions for getting started on the different platforms and configurations that TiddlyWiki supports. See the A Gentle Guide to TiddlyWiki for a more leisurely introduction.

Troubleshooting:

  • Don't attempt to use the browser File/Save menu option to save changes (it doesn't work)

See also:

If the button doesn't work save this link:

http://tiddlywiki.com/index.html

Your browser may ask you to accept the download before it begins

GettingStarted - Android

30th April 2016 at 1:17pm

There are three options for using TiddlyWiki on Android:

Using Firefox and TiddlyFox

(Alternatively, see the video tutorial)

  1. Ensure you have the latest version of Firefox for Android
  2. Install the latest release of the TiddlyFox extension from:
  3. Install this extension to be able to save the TiddlyWiki file locally:
  4. Download an empty TiddlyWiki by saving this link:

    (to save the link, ensure you've installed the "save-link-menus" extension and then long-press on the link and choose "Save link")

  5. When the file has downloaded, click on it within the notification tray or the download manager application
  6. Choose to open the file in Firefox (rather than the default Android viewer)
  7. Click OK in response to the prompt from TiddlyFox that asks whether to enable saving for this file
  8. Try creating a new tiddler using the new tiddler button in the sidebar. Type some content for the tiddler, and click the ok button
  9. Save your changes by clicking the save changes button in the sidebar
    • Look for the yellow notification Saved wiki at the top right of the window
  10. Refresh the browser window to verify that your changes have been saved correctly

Using the AndTidWiki App

The AndTidWiki app for Android devices makes it possible to edit and save changes to TiddlyWiki5, including working offline without a network connection. Download it here.

Instructions for use:

  1. Download an empty TiddlyWiki on another web browser
  2. Move the file you just downloaded to the directory /sdcard/andtidwiki
    • You may rename it, but be sure to keep the .html or .htm extension
  3. Open AndTidWiki
    • Don't use Menu/new TiddlyWiki menu option (it only supports the older TiddlyWikiClassic)
  4. Open the file by touching its filename
  5. Try creating a new tiddler using the new tiddler button in the sidebar. Type some content for the tiddler, and click the ok button
    • The wiki will be saved, and a confirmation message should appear at the top right of the window

Note: You can save your changes by clicking the save changes button in the sidebar even if you have not clicked the ok button to complete editing a tiddler

Note that AndTidWiki is published independently of TiddlyWiki

Using Node.js in Termux

Termux is an open source Android application that combines a Linux system and a terminal.

Once you open Termux on your Android system, it is straightforward to install and run the Node.js flavour of TiddlyWiki from the command line.

From then on, as long as Termux is not closed, you may access your wiki anytime from your favourite Web browser pointing on the expected address and port.

note to contributors: in Termux, you may as well install git, emacs or vi, in order to edit and maintain individual tiddler files. This would probably require that you also attach a more powerful keyboard to your Android, like the Hacker's Keyboard application or a Bluetooth external device.

GettingStarted - Chrome

11th August 2014 at 6:01pm

TiddlyWiki on Google Chrome can only save changes using the HTML5-compatible fallback saver module.

This method of saving changes is clunky because it requires manual intervention for each save. It has the advantage of working on almost all desktop browsers, and many mobile browsers.

  1. Download an empty TiddlyWiki by clicking this button:

    If the button doesn't work save this link: http://tiddlywiki.com/empty.html

    Your browser may ask you to accept the download before it begins

  2. Locate the file you just downloaded
    • You may rename it, but be sure to keep the .html or .htm extension
  3. Open the file in your browser
  4. Try creating a new tiddler using the new tiddler button in the sidebar. Type some content for the tiddler, and click the ok button
  5. Save your changes by clicking the save changes button in the sidebar
  6. Your browser will download a new copy of the wiki incorporating your changes
  7. Locate the newly downloaded file and open it in your browser
  8. Verify that your changes have been saved correctly

Tip: most browsers have an option to prompt each time for the download location. This allows you to select the existing version of the file and replace it.

GettingStarted - Firefox

11th August 2014 at 6:05pm

Firefox provides the best user experience for using TiddlyWiki with the TiddlyFox browser extension.

If you're using Firefox for Android, see the instructions for Saving with TiddlyFox on Android.

  1. Ensure you have the latest version of Firefox
  2. Install the latest release of the TiddlyFox extension from:
  3. Restart Firefox
  4. Download an empty TiddlyWiki by clicking this button:

  5. Locate the file you just downloaded
    • You may rename it, but be sure to keep the .html or .htm extension
  6. Open the file in Firefox
  7. Click OK in response to the prompt from TiddlyFox that asks whether to enable saving for this file
  8. Try creating a new tiddler using the new tiddler button in the sidebar. Type some content for the tiddler, and click the ok button
  9. Save your changes by clicking the save changes button in the sidebar
    • Look for the yellow notification Saved wiki at the top right of the window
  10. Refresh the browser window to verify that your changes have been saved correctly

GettingStarted - Internet Explorer

11th August 2014 at 6:22pm
  1. Install the TiddlyIE add-on from:
  2. Restart Internet Explorer. IE will prompt you to enable the TiddlyIE add-on.

    You may also see a prompt to enable the Microsoft Script Runtime

  3. Download an empty TiddlyWiki by saving this link:

    http://tiddlywiki.com/empty.html

  4. Locate the file you just downloaded
    • You may rename it, but be sure to keep the .html or .htm extension
  5. Open the file in Internet Explorer
  6. Try creating a new tiddler using the new tiddler button in the sidebar. Type some content for the tiddler, and click the ok button
  7. Save your changes by clicking the save changes button in the sidebar. Internet Explorer will ask for your consent to save the file locally by presenting a file Save As dialog.
  8. Refresh the browser window to verify that your changes have been saved correctly

The Windows HTA Hack describes an alternative method of using TiddlyWiki with Internet Explorer.

GettingStarted - iOS

11th August 2014 at 6:09pm

The iPad/iPhone app TWEdit makes it possible to edit and save changes to TiddlyWiki5, including working offline without a network connection. Download it here.

Instructions for use:

  1. Open TWEdit
  2. Touch the title in the centre of the toolbar in order
    • A text box should appear allowing you to enter a URL
  3. Enter the URL http://tiddlywiki.com/empty.html
  4. When the empty TiddlyWiki has loaded, touch the save icon (it's the second icon from the right on the top toolbar)
    • An alert box should appear allowing you to enter a local filename
  5. Enter the filename you wish to use for the document (ending with .html)
  6. Try creating a new tiddler using the new tiddler button in the sidebar. Type some content for the tiddler, and click the ok button
  7. Save your changes by clicking the save changes button in the sidebar
    • A confirmation message should appear at the top right of the window

Note that TWEdit is published independently of TiddlyWiki

GettingStarted - Node.js

11th August 2014 at 6:20pm
  1. Install Node.js
    • either from your favourite package manager: typically apt-get install nodejs on Debian/Ubuntu Linux or Termux for Android, or brew install node on a Mac
    • or directly from http://nodejs.org
  2. Open a command line terminal and type:

    npm install -g tiddlywiki

    If it fails with an error you may need to re-run the command as an administrator:

    sudo npm install -g tiddlywiki (Mac/Linux)

  3. Check TiddlyWiki is installed by typing:

    tiddlywiki --version

  4. In response, you should see TiddlyWiki report its current version (eg "5.1.13"; you may also see other debugging information reported)
  5. Try it out:
    1. tiddlywiki mynewwiki --init server to create a folder for a new wiki that includes server-related components
    2. tiddlywiki mynewwiki --server to start TiddlyWiki
    3. Visit http://127.0.0.1:8080/ in your browser
    4. Try editing and creating tiddlers
  6. Optionally, make an offline copy:
    • click the save changes button in the sidebar, OR
    • tiddlywiki --build index

The -g flag causes TiddlyWiki to be installed globally. Without it, TiddlyWiki will only be available in the directory where you installed it.

If you are using Debian or Debian-based Linux and you are receiving a node: command not found error though node.js package is installed, you may need to create a symbolic link between nodejs and node. Consult your distro's manual and whereis to correctly create a link. See github issue 1434

Example Debian v8.0: sudo ln -s /usr/bin/nodejs /usr/bin/node

GettingStarted - Safari

25th March 2015 at 5:39pm

TiddlyWiki on Safari can only save changes using the manual HTML5-compatible fallback saver module.

This method of saving changes is clunky because it requires manual intervention for each save.

  1. Download an empty TiddlyWiki by clicking this button:

    If the button doesn't work save this link: http://tiddlywiki.com/empty.html

    Your browser may ask you to accept the download before it begins

  2. Locate the file you just downloaded
    • You may rename it, but be sure to keep the .html or .htm extension
  3. Open the file in Safari
  4. Try creating a new tiddler using the new tiddler button in the sidebar. Type some content for the tiddler, and click the ok button
  5. Save your changes by clicking the save changes button in the sidebar
  6. A popup "Download changes" window is displayed that includes a link labelled Right-click to save changes
  7. Right-click on the link and select "Download Linked File As..." from the popup menu
  8. Navigate to the folder containing your wiki HTML file and select the existing file
  9. Click the "Save" button
  10. Click "Replace" to confirm replacing the existing file
  11. Verify that your changes have been saved correctly

GettingStarted - WebDAV

16th February 2016 at 8:46pm

TiddlyWiki will use WebDAV to save changes if the server supports it. The main difficulty with this method is setting up a server.

Servers

dav-server is a quick way to serve up a folder of HTML TiddlyWikis.

webdav server for Android lets you put wikis in your pocket. You can share with other devices on the local network too.

Existing Wikis

WebDAV support was added Feb 16 2016. If you created your wiki before that, you'll need to Upgrade to enable WebDAV.

Free Hosting

None of the WebDAV hosting services tested (box.com, swissdisk.com) support accessing HTML files via a webbrowser, so they won't work with TiddlyWiki. Maybe someday soon there will be a free WebDAV hosting service for TiddlyWikis.

GitHub

10th September 2014 at 10:27pm

GitHub is a hosting service for distributed projects that use git as their version-control system. It allows free hosting and management of open-source projects and facilitates collaborative developement on the source code. Using GitHub for non-open-source endeavors requires additional fees.

The code and documentation of TiddlyWiki is hosted on GitHub at:

https://github.com/Jermolene/TiddlyWiki5

Go to Mordor

25th August 2013 at 3:31pm

This is a sample task for the TaskManagementExample

GroupedLists

21st February 2015 at 11:01pm

The following sidebar tabs give examples of grouped lists created by nesting.

Types Tab

For the Types tab, the outer list filter as shown below selects each discrete value found in the type field. The inner list filter selects all the (non-system) tiddlers with that type.

<$list filter={{$:/core/Filters/TypedTiddlers!!filter}}>
<div class="tc-menu-list-item">
<$view field="type"/>
<$list filter="[type{!!type}!is[system]sort[title]]">
<div class="tc-menu-list-subitem">
<$link to={{!!title}}><$view field="title"/></$link>
</div>
</$list>
</div>
</$list>

Recent Tab

The list in the Recent tab is generated using the timeline macro. Here, the outer list filter selects each discrete day found in the modified field, while the inner list filter selects all the tiddlers dated the same day in the modified field.

$:/core/macros/timeline:

\define timeline-title()
<!-- Override this macro with a global macro 
     of the same name if you need to change 
     how titles are displayed on the timeline 
     -->
<$view field="title"/>
\end
\define timeline(limit:"100",format:"DDth MMM YYYY",subfilter:"",dateField:"modified")
<div class="tc-timeline">
<$list filter="[!is[system]$subfilter$has[$dateField$]!sort[$dateField$]limit[$limit$]eachday[$dateField$]]">
<div class="tc-menu-list-item">
<$view field="$dateField$" format="date" template="$format$"/>
<$list filter="[sameday:$dateField${!!$dateField$}!is[system]$subfilter$!sort[$dateField$]]">
<div class="tc-menu-list-subitem">
<$link to={{!!title}}>
<<timeline-title>>
</$link>
</div>
</$list>
</div>
</$list>
</div>
\end

GuerillaWiki

17th August 2014 at 3:10pm

TiddlyWiki makes a great GuerillaWiki in situations where it is not practical to use a traditional wiki.

For instance, in a corporate setting, persuading an over-worked IT department to install a Wiki server for you is seldom going to be possible overnight. And if your PC is locked down you can't install a conventional Wiki yourself. Equally, you can't go and use one of the public hosted Wiki services because your Information Security department would not allow all that corporate data to flow into an outside server.

TiddlyWiki slices through those barriers by being usable on virtually all PCs.

Hard and Soft Links

26th February 2015 at 4:31pm

A hard link is one that can be detected by a superficial examination of WikiText.

A link is soft if it is:

  • contained in text trancluded from elsewhere
  • supplied via a macro or variable
  • generated by a link widget whose to attribute is a transclusion, macro or variable

Soft links are not detected by link-related filter operators such as backlinks, links, all and is.

Hard Linebreaks in WikiText

14th December 2013 at 5:01pm

The usual handling of paragraphs in wikitext causes single line breaks to be ignored, and double linebreaks to be interpreted as the end of a paragraph.

This behaviour isn't convenient when dealing with material that incorporates hard linebreaks - for instance, poetry. You can mark a block of content as containing hard line breaks like this:

"""
This is a line
and this is a new line
while this is yet another line
and this is the final one
apart from this one
"""

That renders as:

This is a line
and this is a new line
while this is yet another line
and this is the final one
apart from this one

... and the underlying HTML is:

<p>This is a line<br>and this is a new line<br>while this is yet another line<br>and this is the final one<br>apart from this one<br></p>

has Operator

3rd February 2015 at 7:18pm
purposefilter the input by field existence
inputa selection of titles
parameterF = the name of a field
outputthose input tiddlers in which field F has a non-empty value
! outputthose input tiddlers in which field F does not exist or has an empty value

has Operator (Examples)

18th January 2015 at 6:32pm

[has[color]]

[tag[Concepts]!has[modified]]

haschanged Operator

8th February 2015 at 7:18pm
purposefilter the input by tiddler modification status
inputa selection of titles
parameternone
outputthose input tiddlers that have been modified during this session
! outputthose input tiddlers that have not been modified during this session

A tiddler is deemed to have been modified if it has been written back to the wiki since the start of the current TiddlyWiki session. If you edit a tiddler and immediately store it again without making any changes, that is enough to mark it as modified.

Examples

Headings in WikiText

5th December 2013 at 4:12pm

Headings are specified with one or more leading ! characters:

! This is a level 1 heading

!! This is a level 2 heading

!!! This is a level 3 heading

CSS classes can be assigned to individual headings like this:

!.myStyle This heading has the class `myStyle`

HelloThere

25th July 2016 at 9:48am

Have you ever had the feeling that your head is not quite big enough to hold everything you need to remember?

Welcome to TiddlyWiki, a unique non-linear notebook for capturing, organising and sharing complex information.

Use it to keep your to-do list, to plan an essay or novel, or to organise your wedding. Record every thought that crosses your brain, or build a flexible and responsive website.

Introduction to TiddlyWiki
A Gentle Guide
Helping TiddlyWiki
Developers
European Meetup 2016
What's New in 5.1.13
TiddlyWiki Classic

Unlike conventional online services, TiddlyWiki lets you choose where to keep your data, guaranteeing that in the decades to come you will still be able to use the notes you take today.

TiddlyWiki Mailing List TiddlyWiki on YouTube @TiddlyWiki on Twitter TiddlyWiki on GitHub

HelloThumbnail

14th April 2015 at 8:09am

HelloThumbnail - Classic

HelloThumbnail - Developers

HelloThumbnail - Gentle Guide

14th April 2015 at 8:10am

HelloThumbnail - HelpingTiddlyWiki

HelloThumbnail - Introduction Video

HelloThumbnail - Latest Version

HelloThumbnail - TWEUM2016

HelpCommand

25th February 2014 at 7:57pm

Displays help text for a command:

--help [<command>]

If the command name is omitted then a list of available commands is displayed.

HelpingTiddlyWiki

10th October 2015 at 2:12pm

If you find TiddlyWiki useful, there are lots of ways you can help assure its future and make it better.

Teach and Tell

OpenSource projects like TiddlyWiki thrive on the feedback and engagement of users. TiddlyWiki becomes more useful to everyone as more and more people use it. So, if you find TiddlyWiki useful, spread the word. The best possible way to assure its future is for it to become a hundred times more popular than before.

Help improve the documentation and code

There are many ways you can contribute to TiddlyWiki:

  • Writing tutorials
  • Contributing to the documentation on tiddlywiki.com
  • Making video screencasts
  • Curating relevant links, hints and tips on a wiki

The main TiddlyWiki documentation and code lives on GitHub, and welcomes contributions:

Hidden Setting: Search AutoFocus

19th June 2015 at 5:26pm

When TiddlyWiki first opens in the browser the search box is automatically given the focus by default. If this causes problems, you can change the default by changing this value from true to false:

$:/config/Search/AutoFocus

Hidden Setting: Typing Refresh Delay

19th June 2015 at 5:25pm

TiddlyWiki defers processing changes to draft tiddlers until a timeout has elapsed. The default value of 400ms gives a good balance of responsiveness in most cases but isn't always optimal on lower powered mobile devices.

The timeout can now be changed by changing this value (in milliseconds):

$:/config/Drafts/TypingTimeout

Hidden Settings

19th June 2015 at 5:24pm

The most useful configuration settings for TiddlyWiki are exposed in the control panel but some more advanced settings do not have a full user interface. Instead, the underlying configuration tiddlers are edited directly.

To change these settings on an empty TiddlyWiki, you can drag the links to the individual configuration tiddlers directly from this wiki into yours.

Highlight Plugin

7th January 2016 at 10:37pm

The Highlight plugin provides the ability to apply syntax colouring to text.

See http://tiddlywiki.com/plugins/tiddlywiki/highlight/

History of TiddlyWiki

23rd September 2014 at 3:19pm

These are personal reflections on the history and development of TiddlyWiki from JeremyRuston.

There is also a podcast discussing TiddlyWiki's backstory.

Origins of TiddlyWiki

Back in 1997 a colleague introduced me to Ward Cunningham's original wiki. I was impressed that something so powerful could fit into just 700 lines of Perl, and fascinated by the radical reimagining of security and permissions. Like many other developers, I took every opportunity I could to try out various wikis, and to explore their use at work.

The allure of the wiki for me was the feeling that it could eventually disrupt the prevailing paradigm of print-oriented documents and emails.

After watching people use wikis for a few years, I noticed that power users made extensive use of the ability to open multiple wiki pages at once in several browser tabs, making it easier for them to compare and review pages, to copy text between them and to act as a sort of queue of pages yet to be read.

I felt that this ability to manipulate multiple pages at once was central to the ability to refactor a wiki, and it is generally accepted that a wiki that is lovingly refactored tends to be more useful. And yet, standard wiki user interfaces have always been designed exclusively for the presentation and manipulation of single pages at once.

All of these thoughts came together when I saw GMail in April 2004, which used Ajax cleverly to blend individual emails into threaded conversations.

I started experimenting with HTML and JavaScript to explore the idea further. I'd had virtually no experience of either, just having put together some static pages and simple ASP sites in previous lives. Getting my head around these client-side technologies was painful; like everyone else, I was horrified to discover how appalling were the incompatibilities and inconsistencies of web programming.

Launch of TiddlyWiki

So, in September 2004 I released a primitive first version of TiddlyWiki. It was the smallest possible thing that demonstrated the idea: it was a simple, self-contained static 48KB HTML file.

The downside of writing the first version of TiddlyWiki in this way was that it made it completely impractical to use for editing - when you click 'save changes' it just pops up a window showing the data that would be saved if it were possible for an HTML page to write to the file system.

Much of the early feedback was that TiddlyWiki was neat, but that it would be more useful when it was possible to properly save changes. I was a little frustrated, as I thought I knew that it was impossible for an HTML file running in the browser to save changes to the local file system.

Within a few months I saw an experimental Firefox extension that enabled TiddlyWiki to save changes in the browser. Examining the code, I realised that the APIs that it used to write to the file system were actually available in ordinary HTML files - as long as they were loaded via a file:// URI.

I adapted the Firefox code into the core of TiddlyWiki, and soon added a similar ability for Internet Explorer (making use of an old ActiveX control that Microsoft distributed with Internet Explorer).

Growth of TiddlyWiki

A major milestone in the growth of TiddlyWiki was the creation of "GTDTiddlyWiki" by Nathan Bowers. He took the vanilla TiddlyWiki product and adapted it for the specific application of keeping track of tasks using the popular Getting Things Done methodology. GTDTiddlyWiki was an immediate hit, being enthusiastically greeted on websites like LifeHacker.

Over the next couple of years TiddlyWiki continued to grow in popularity, and gained new features and capabilities. Within a year I was able to support myself by performing bespoke development work on TiddlyWiki, notably working with wiki pioneer SocialText on the ability to synchronise changes with an online server

BT Acquisition

In May 2007, BT acquired Osmosoft, my consultancy company. It was an unusual decision to acquire a company with a single employee and a tiny trickle of revenue - Osmosoft didn't even own the intellectual property in TiddlyWiki since I had handed it over to UnaMesa to assure its future for the community.

BT's motivation was to help them understand community-based ecosystems. I joined the organisation as "Head of Open Source Innovation", taking responsibility for open source governance, and providing advice and expertise on how to participate in open soure communities.

Osmosoft and TiddlySpace

I built a team in BT under the name Osmosoft. Our purpose was to evangelise the benefits of open source, and to help other teams realise those benefits in practice. We also found that it was necessary to evangelise the use of the web in general, and web standards in particular.

Our approach was to focus on showing rather than telling. We worked with the TiddlyWiki community to extend the ecosystem and we built numerous internal systems for BT (some based on TiddlyWiki and some not).

Osmosoft's chief contribution to the TiddlyWiki community was the creation of TiddlyWeb and TiddlySpace. TiddlyWeb was a robust, internet scale server for tiddlers that could also compose TiddlyWiki views of those tiddlers. TiddlySpace was an attempt to package TiddlyWeb into a more directly usable form.

Leaving BT

By the end of 2011 I was increasingly feeling that I would be better placed to realise the potential of TiddlyWiki outside of the corporate confines BT. Accordingly, I left and started work as an independent developer, primarily working on a brand new reboot of TiddlyWiki in the shape of TiddlyWiki5.

Development of TiddlyWiki5

I worked on new release of TiddlyWiki from November 2011. As a programmer, working on "version 2.0" of something that I had already written is a very attractive proposition. It means that the requirements were fully understood, allowing me to focus on evolving the architecture needed to support the desired functionality.

The Future

Now that TiddlyWiki5 has finally left "beta" status behind, my hope is that it will have a long life. Because it only uses standard features of HTML5 and Node.js, there is no reason why it cannot be fully operational for many years to come. My goal is for it to last for at least 25 years.

Jeremy Ruston, 20th September 2014

HistoryMechanism

7th February 2015 at 1:10pm

The system tiddler $:/HistoryList keeps track of a list of tiddlers comprising the navigation history. Each time you click on a link to a tiddler, the title of the target tiddler is added to the top of the stack.

The history list is stored in JSON to allow additional details about the coordinates of the DOM node that initiated the navigation.

The history list also maintains the field current-tiddler that contains the name of the tiddler at the top of the stack. This field can be used like so:

<$list filter="[list[$:/StoryList]]" history="$:/HistoryList" storyview="pop">

<$button message="tm-close-tiddler" class="tc-btn-invisible tc-btn-mini">&times;</$button> <$link to={{!!title}}><$view field="title"/> <$reveal type="match" state="$:/HistoryList!!current-tiddler" text=<<currentTiddler>>>&#x2713;</$reveal></$link>

</$list>

Which renders the same as the "Open" sidebar tab, with the addition of a tick against the tiddler that was last navigated to.

HelloThere

GettingStarted

Community

Empty Story

To display content when the story is empty, create $:/config/EmptyStoryMessage and enter the desired contents. The following would show the GettingStarted tiddler when all others are closed.

{{GettingStarted||$:/core/ui/ViewTemplate}}

Horizontal Rules in WikiText

5th December 2013 at 4:07pm

You can include a horizontal rule with three or more dashes on their own on a line:


---

That renders as:


... and the underlying HTML is:

<hr>

How to add a banner for GitHub contributions

23rd November 2014 at 9:44am

When you edit a tiddler on http://tiddlywiki.com you will see a small ribbon inviting you to edit the source of the tiddler on GitHub.

If you are using Node.js, you can replicate this feature for your own TiddlyWiki-based site as follows:

  1. Make sure the following setting is included in the tiddlywiki.info file in your WikiFolder:

    	"config": {
    		"retain-original-tiddler-path": true
    	}

  2. Copy the tiddler $:/ContributionBanner to your wiki
  3. Make the following changes:
    1. Adjust the GitHub link URL from https://github.com/Jermolene/TiddlyWiki5/edit/master/editions/tw5.com/tiddlers/ to point to your own GitHub repo
    2. Make sure the wording of the text starting "Can you help us improve this documentation?" is appropriate for your visitors
    3. Adjust the link to Improving TiddlyWiki Documentation to point to your own tiddler with instructions for the contribution procedure

How to add a new tab to the sidebar

21st February 2015 at 7:39pm

To create a new tab in the sidebar menu:

  1. Create a tiddler and tag it with the SystemTag tag $:/tags/SideBar
  2. By default, the tiddler title is used as the tab title but you can override it using the caption field
  3. To define the tab ordering, use the list-after or list-before fields as discussed in Tagging

Note that you can create new tabs under the "More" tab in the same way by using the tag $:/tags/MoreSideBar.

How to apply custom styles by tag

5th October 2015 at 8:47am

You can apply custom styles to tiddlers that have a particular tag by defining a CSS class with the name tc-tagged-<Tag Name>.

For example, to make tiddlers tagged "NightReader" appear in a special colour scheme suitable for night-time reading, create a stylesheet defining the class tc-tagged-NightReader like this:

.tc-tagged-NightReader {
	background-color:black;
	color: orange;
	padding: 35px 35px;
}

.tc-tagged-NightReader .tc-tiddler-body {
	font-size: 1.5em;
}

The tc-tagged-NightReader class is applied to the entire tiddler and not just the tiddler text. If you want to target a smaller portion of the tiddler you can qualify the CSS selector, as is done here with .tc-tagged-NightReader .tc-tiddler-body.

Note that tags containing spaces or non-alphanumeric characters will be converted using URI encoding, making the generated CSS classname hard to predict. For example:

TagGenerated Class Name
$:/mytagtc-tagged-%24%3A%2Fmytag
Doctor Whotc-tagged-Doctor%20Who
£35.23tc-tagged-%C2%A335.23

Although TiddlyWiki will generate these tags, to actually use them in your css, you will need to escape the percent character in your stylesheet, like:

.tc-tagged-Doctor\%20Who {
    background-image: url(./tardis_back.svg);
    background-repeat: no-repeat;
    background-position: right;
    color:#FBFBFB;
}

A utility function is available in JavaScript to perform the conversion:

$tw.utils.tagToCssSelector("$:/tags/Stylesheet")

Generates the following output:

tc-tagged-\%24\%3A\%2Ftags\%2FStylesheet

How to build a TiddlyWiki5 from individual tiddlers

12th September 2014 at 3:16pm

First install TiddlyWiki as described in Installing TiddlyWiki on Node.js.

  1. Create an empty TiddlyWikiFolder
    1. Create a new folder in a convenient place (for example ~/MyWiki)
    2. Create a file called tiddlywiki.info containing the following text:
      • {"themes": ["tiddlywiki/vanilla","tiddlywiki/snowwhite"]}
    3. Create a subfolder called tiddlers
      • Alternatively, just copy the editions/empty folder from the TiddlyWiki5 repo
  2. Create individual TiddlerFiles in the ~/MyWiki/tiddlers directory
  3. Execute the following command from the TiddlyWiki5 root directory to build a TiddlyWiki5 file from the tiddlers:
    1. tiddlywiki ~/MyWiki --rendertiddler $:/core/save/all index.html text/plain

How to export tiddlers

10th June 2016 at 9:40am

Selecting All tiddlers for export

To export all tiddlers click on the "Tools" tab of the Sidebar. Find and click the export all button. A pop-up menu will offer you the chance to export tiddlers in multiple formats.

Exporting a tiddler

If you want to export a particular tiddler, first navigate to that tiddler. Then click on the more button that appears above the tiddler. From the list that appears select export tiddler. A pop-up menu will offer you the chance to export the tiddler in multiple formats.

Exporting tiddlers matching a criteria (filter)

To export a selection of tiddlers, click the little magnifying glass next to the search area on the sidebar. This will open the Advanced Search tiddler. Click on the "Filter" tab of the Advanced Search tiddler. Only the Filter tab will allow you to export a selection of tiddlers. Filters follow a particular syntax. Click on this Filters link to learn about how to make filters.

Once you have written a filter, a list of tiddlers matching the filter will appear. Now you can click on the export tiddler button to the right of the filter input field. A pop-up menu will offer you the chance to export tiddlers in multiple formats.

Export formats

Currently, the export formats available are:

  • CSV file format
  • JSON file format
  • Static HTML file
  • ".tid" file format

The ".tid" format is unique from the other formats in that only one tiddler will be exported, even if you are attempting to export all tiddlers or a selection of tiddlers.

How to put the last modification date in a banner

17th June 2016 at 1:59pm

Here's how to display the last modification date of a wiki in a banner in the corner of the window:

  1. Install the plugin Corner ribbon in your TiddlyWiki
  2. Save ( ) and reload ( ) your wiki
  3. Create a new tiddler called $:/_MyRibbon tagged $:/tags/PageControls and containing:
    <div class="github-fork-ribbon-wrapper right">
    <div class="github-fork-ribbon" style="background-color:#DF4848;">
    <$list filter="[!is[system]!has[draft.of]!sort[modified]limit[1]]">
    <$link>
    <$view field="modified" format="date" template="DD mmm YYYY at 0hh:0mm"/>
    </$link>
    </$list>
    </div>
    </div>
  4. If required, change the background-color value to your preference
  5. You can also try changing the positioning class from right to right-bottom
    1. To make the banner appear at the top left you'll need to tag the tiddler $:/tags/PageTemplate instead of $:/tags/PageControls and then change the position class to left

HTML in WikiText

22nd June 2016 at 12:22pm

HTML tags and comments can be used directly in WikiText. For example:

<article class="hello">
This is my nice and simple block of text. HelloThere
<!-- This comment will not appear in the wikified output -->
</article>

Content Parsing

The content of an HTML element will be parsed in inline mode unless the opening tag is followed by two linebreaks, in which case it is parsed in block mode. (Inline mode means that block mode formatting such as tables, lists and headings is not recognised).

Attributes

Attributes in HTML tags can be specified as a literal, a transclusion or a macro invocation. For example, here the value of the href attribute will be set to the value of the tiddler MyLinkDestination:

<a href={{MyLinkDestination}} rel="noopener noreferrer">link</a>

Note that the link should have the rel attribute set to noopener noreferrer to maintain privacy of the URLs of private TiddlyWiki's (eg on Dropbox). See https://mathiasbynens.github.io/rel-noopener/ for more information.

Here an attribute is specified as a macro invocation:

<a href=<<MyMacro "Brian">> rel="noopener noreferrer">link</a>

Literal attribute values can include line breaks. For example:

<div data-address="Mouse House,
Mouse Lane,
Rodentville,
Ratland."/>

By using triple-double quotes you can specify attribute values that include single double quotes. For example:

<div data-address="""Mouse House,
"Mouse" Lane,
Rodentville,
Ratland."""/>

HyperText Markup Language

28th February 2015 at 1:39pm

HTML is a standard plain-text format used for defining the content of a web page.

It consists of a tree of elements expressed using a system of special tags enclosed in angle brackets.

Almost the whole of HTML can be used unchanged in the WikiText of a tiddler.

image-picker Macro

18th April 2016 at 4:58pm

The image-picker macro displays an interactive image picker, as can be seen in the core text editor.

Parameters

actions
Wikitext for the action widgets that should be executed when the user selects an image. Within the text, the variable imageTitle contains the title of the tiddler containing the selected image.
subfilter
An optional extra filter step, e.g. tag[MyTag]

The images are selected by means of a filter expression, into which the subfilter parameter is spliced as follows:

[all[shadows+tiddlers]is[image]$subfilter$!has[draft.of]] -[type[application/pdf]] +[sort[title]]

Examples

image-picker Macro (Example 1)

18th April 2016 at 4:59pm

Image:


image-picker Macro (Example 2)

18th April 2016 at 4:59pm

Image:


image-picker Macro (Examples)

18th April 2016 at 4:56pm

Image: <$edit-text tiddler='$:/_MyImage' tag='input' placeholder='(unset)' default=''/>

<$transclude tiddler={{$:/_MyImage}}/>

---

<$macrocall $name='image-picker' actions="

<$action-setfield $tiddler='$:/_MyImage' $value=<<imageTitle>>/>

"/>

This next example shows how the subfilter parameter limits the list of images (here to those with the "Language" prefix):

Image: <$edit-text tiddler='$:/_MyImage' tag='input' placeholder='(unset)' default=''/>

<$transclude tiddler={{$:/_MyImage}}/>

---

<$macrocall $name='image-picker' actions="

<$action-setfield $tiddler='$:/_MyImage' $value=<<imageTitle>>/>

" subfilter="prefix[Language]"/>

ImageGallery Example

20th May 2015 at 5:14pm

Here is an example of using the ListWidget and the TranscludeWidget to show a grid of all system images (ie, tiddlers tagged $:/tags/Image).

Images in WikiText

17th June 2016 at 11:03am

Image Formatting

Images can be included in WikiText with the following syntax:

[img[Motovun Jack.jpg]]
[img[http://tiddlywiki.com/favicon.ico]]

You can also insert images from the editor toolbar. Click picture ( ) and select a picture file.

If the image source is the title of an image tiddler then that tiddler is directly displayed. Otherwise it is interpreted as a URL and an HTML <img> tag is generated with the src attribute containing the URL.

A tooltip can also be specified:

[img[An explanatory tooltip|Motovun Jack.jpg]]

Attributes can be provided to specify CSS classes and the image width and height:

[img width=32 [Motovun Jack.jpg]]
[img width=32 class="tc-image" [Motovun Jack.jpg]]

Note that attributes can be specified as transclusions or variable references:

[img width={{!!mywidth}} class=<<image-classes>> [Motovun Jack.jpg]]

The image syntax is a shorthand for invoking the ImageWidget.

Displaying Images via Transclusion

You can also display an image stored in a tiddler by transcluding that tiddler. The disadvantage of this approach is that there is no direct way to control the size of the image.

{{Motovun Jack.jpg}}

Renders as:

ImageWidget

20th August 2014 at 11:02am

Introduction

The image widget displays images that can be specified as a remote URL or the title of a local tiddler containing the image.

Content and Attributes

Any content of the <$image> widget is ignored.

AttributeDescription
sourceThe URL of the image, or the title of an image tiddler
widthThe width of the image
heightThe height of the image
tooltipThe tooltip to be displayed over the image
altThe alternative text to be associated with the image
classCSS classes to be assigned to the <img> element

The width and the height can be specified as pixel values (eg "23" or "23px") or percentages (eg "23%"). They are both optional; if not provided the browser will use CSS rules to size the image.

External Images and the _canonical_uri field

When used to display tiddler-based images, the image widget operates in two distinct modes:

  • If the _canonical_uri field is present then it is used as the src attribute of the generated <img> element and the text field is ignored
  • Without the _canonical_uri field, the image widget generates an <img> element that embeds the image data directly using a data: URI.

See ExternalImages for more details.

ImportTiddlers

10th June 2016 at 8:37am

You can import content into a TiddlyWiki file in several ways:

  • Use the import button (under the Tools tab in the sidebar) to select a local file
  • Drag and drop files from Windows Explorer or OS X Finder etc. into the TiddlyWiki browser window
  • Paste content directly from the clipboard using the menu or keyboard shortcut (control-V or command-V)
    • GoogleChrome is currently the only browser to support pasting

ImportVariablesWidget

12th June 2014 at 6:59pm

Introduction

The ImportVariablesWidget imports macro and variable definitions from a list of other tiddlers and makes them available to its children. For example:

<$importvariables filter="[tag[mySpecialMacros]]">
All the macros defined in tiddlers with the tag "mySpecialMacros" are available here
</$importvariables>

Attributes and Content

The content of the importvariables widget is the scope within which the imported variable definitions are available.

AttributeDescription
filterTiddler filter defining the tiddlers from which macro definitions will be imported

Global Macros

So-called global macros are implemented within the main page template ($:/core/ui/PageTemplate) by wrapping the page content in the following importvariables widget:

<$importvariables filter="[[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]">
...
</$importvariables>

Improving TiddlyWiki Documentation

30th June 2015 at 9:57pm

Anyone can submit improvements to the TiddlyWiki documentation that appears on http://tiddlywiki.com.

  1. Read and observe the Documentation Style Guide
  2. Create an account on https://github.com if you don't already have one
  3. If you haven't done so already, sign the Contributor License Agreement as described in Signing the Contributor License Agreement
  4. On http://tiddlywiki.com, click "edit" on the tiddler you want to improve
  5. You should see a pink banner with the text: Can you help us improve this documentation? Find out how to edit this tiddler on GitHub
  6. Click on the external link ...this tiddler on GitHub
    1. You will be prompted that "you need to fork this repository to propose changes". A "fork" is your own copy of the repository that incorporates the changes you are proposing
  7. A new browser tab should open ready to edit the tiddler on github.com
  8. Below the edit box for the tiddler text you should see a box labelled Propose file change
  9. Enter a brief title to explain the change (eg, "Clarify attribute syntax instability")
  10. If necessary, enter a longer description too
  11. Click the green button labelled Propose file change
  12. On the following screen, click the green button labelled Create pull request

Jermolene or one of the other core developers will then have the opportunity to merge your pull request so that it is incorporated into the next build of http://tiddlywiki.com.

Mario Pietsch has created these short video tutorials:

IndexedDB Plugin by Andreas Abeck

3rd April 2015 at 12:07pm

A plugin that allows changes to be synchronised with the IndexedDB database that is built-in to most browsers.

http://tw5-dev.cibm.de

Being quite new to TW5 development I tried my best to draft a SyncAdaptor to store tiddlers in IndexedDb. This is quite useful if an application / plugin installation is not possible (we have quite some restrictions at work...).

indexes Operator

3rd February 2015 at 6:51pm
purposeselect all data properties of the input titles
inputa selection of titles
parameternone
outputall the property names or indices contained in the input data tiddlers

Each input title is processed in turn, and is ignored if it does not denote a data tiddler. The list of property names is retrieved from the data tiddler (in no particular order) and then dominantly appended to the operator's output.

Where a tiddler's content is JSON with an array as its root, the indexes operator retrieves a selection of integer indices instead.

Examples

indexes Operator (Examples)

19th January 2015 at 7:10pm

[{$:/palette}indexes[]sort[title]]
→ all the colours defined in the current colour palette

[[$:/HistoryList]indexes[]]
→ integer output because the history list is an array

InfoMechanism

20th July 2014 at 5:52pm

System tiddlers in the namespace $:/info/ are used to expose information about the system (including the current browser) so that WikiText applications can adapt themselves to available features.

Information Tiddlers

TitleDescription
$:/info/browserRunning in the browser? ("yes" or "no")
$:/info/nodeRunning under Node.js? ("yes" or "no")

InfoPanel

17th September 2015 at 8:36pm

Each tiddler has a panel of additional information. To reveal it, click the button in the tiddler's toolbar and then choose info from the dropdown list.

The info panel has the following tabs:

  • Tools - This offers buttons for various actions you can perform on the tiddler. The checkbox next to each button lets you promote an action to the tiddler's toolbar - this will affect all of the tiddlers in your wiki
  • References, Tagging, List and Listed - These list various kinds of related tiddlers. See Using links to navigate between tiddlers
  • Fields - This summarises all of the tiddler's fields, except for text
  • Advanced - This indicates whether the tiddler is a shadow. If it is, this also reveals which plugin it comes from and whether it has been overridden by an ordinary tiddler

To close the info panel, click anywhere outside it.

InitCommand

17th June 2014 at 10:25pm

Initialise an empty WikiFolder with a copy of the specified edition.

--init <edition> [<edition> ...]

For example:

tiddlywiki ./MyWikiFolder --init empty

Note:

  • The wiki folder directory will be created if necessary
  • The "edition" defaults to empty
  • The init command will fail if the wiki folder is not empty
  • The init command removes any includeWikis definitions in the edition's tiddlywiki.info file
  • When multiple editions are specified, editions initialised later will overwrite any files shared with earlier editions (so, the final tiddlywiki.info file will be copied from the last edition)
  • --editions returns a list of available editions

See also:

Installing a plugin from the plugin library

20th July 2016 at 3:58pm

Standalone Configuration

Follow these instructions when using TiddlyWiki as a standalone HTML file:

  1. Create a backup of your current TiddlyWiki HTML file (just in case)
  2. Open your TiddlyWiki in a browser
  3. Open the control panel , click on the Plugins tab and then the Get more plugins button
  4. Click open plugin library to open the official plugin library
  5. When the library listing is loaded:
    1. Use the tab to select between plugins, themes and languages
    2. Use the search box to search the plugin details
  6. Click the install button to install a plugin
  7. Save your TiddlyWiki
  8. Refresh the page so that TiddlyWiki loads the new plugin
  9. The plugin should now be available for use

Client-Server Configuration

Follow these instructions when using TiddlyWiki under Node.js:

  1. Identify the plugins you want to install using the Plugins tab of control panel (don't install the plugins from here, though). Plugins are identified by their type (ie language, theme or plugin) and their publisher and title. For example, the plugin $:/plugins/tiddlywiki/internals is referred to as tiddlywiki/internals
  2. Quit the server if it is running
  3. Edit the tiddlywiki.info file (it is in JSON format) and locate the plugins and themes section (see below)
  4. Add entries corresponding to the plugins you wish to add. Take care to retain commas to separate items, but do not terminate the last item in a list with a comma
  5. Restart the server
{
	"plugins": [
		"tiddlywiki/codemirror"
	],
	"themes": [
		"tiddlywiki/vanilla",
		"tiddlywiki/snowwhite"
	]
}

Installing TiddlyWiki on Node.js

20th May 2016 at 10:02am
  1. Install Node.js
    • either from your favourite package manager: typically apt-get install nodejs on Debian/Ubuntu Linux or Termux for Android, or brew install node on a Mac
    • or directly from http://nodejs.org
  2. Open a command line terminal and type:

    npm install -g tiddlywiki

    If it fails with an error you may need to re-run the command as an administrator:

    sudo npm install -g tiddlywiki (Mac/Linux)

  3. Check TiddlyWiki is installed by typing:

    tiddlywiki --version

  4. In response, you should see TiddlyWiki report its current version (eg "5.1.13"; you may also see other debugging information reported)
  5. Try it out:
    1. tiddlywiki mynewwiki --init server to create a folder for a new wiki that includes server-related components
    2. tiddlywiki mynewwiki --server to start TiddlyWiki
    3. Visit http://127.0.0.1:8080/ in your browser
    4. Try editing and creating tiddlers
  6. Optionally, make an offline copy:
    • click the save changes button in the sidebar, OR
    • tiddlywiki --build index

The -g flag causes TiddlyWiki to be installed globally. Without it, TiddlyWiki will only be available in the directory where you installed it.

If you are using Debian or Debian-based Linux and you are receiving a node: command not found error though node.js package is installed, you may need to create a symbolic link between nodejs and node. Consult your distro's manual and whereis to correctly create a link. See github issue 1434

Example Debian v8.0: sudo ln -s /usr/bin/nodejs /usr/bin/node

Installing TiddlyWiki Prerelease on Node.js

26th September 2015 at 5:32pm
  1. Clone a local copy of the TiddlyWiki5 GitHub repository from https://github.com/Jermolene/TiddlyWiki5
  2. Open a command line terminal and change the current working directory to the root of the TiddlyWiki5 repo
  3. Type npm link (Windows) or sudo npm link (Mac/Linux) to tell npm to use this copy of the repo as the globally installed one

After this procedure you can work with TiddlyWiki5 via npm as though it had been installed in the usual way with npm install -g tiddlywiki.

Update the clone from time to time in order to ensure that you have the latest code.

Instruction Tiddlers

17th January 2015 at 3:25pm

Instruction tiddlers talk directly to the reader and guide them through a process. The reader is likely to be a beginner or an intermediate user.

Such tiddlers can be subcategorised as:

Welcome
  • What is TiddlyWiki and why should I care?
  • Demonstrations of key features and benefits
  • Frequently asked questions
  • Examples of TiddlyWiki in the field
  • Information about the project itself
Tutorial
  • An ordered presentation of material for beginners
  • Each tiddler introduces one new point or concept
  • Its main content contains very few links
  • A revealable "Find out more" section at the end can offer related links
Exercise
  • Accompanying a tutorial tiddler
  • Solution revealed on demand
How-to
  • A list of numbered steps for performing a small specific task
  • Concise, with links to reference tiddlers where appropriate
  • Often has a preamble to clarify the nature of the task
Example
  • Accompanying a reference tiddler
  • Can contain explanations and similar commentary
  • Kept separate to keep the reference tiddler pure

Instruction tiddlers talk directly to the reader as "you". They can be reasonably chatty.

But they avoid excessively colloquial language, cultural or topical references and attempts at humour, as these can baffle or even offend the international readership. They also avoid potentially frustrating the reader with descriptions of features as "convenient" or "easy".

Interactive Git Documentation by Devin Weaver

21st June 2015 at 10:45pm

A git choose-your-own-adventure!ⓡ for walking yourself though fixing a broken Git repository.

http://sukima.github.io/GitFixUm/

This document is an attempt to be a fairly comprehensive guide to recovering from what you did not mean to do when using git. It isn't that git is so complicated that you need a large document to take care or your particular problem, it is more that the set of things that you might have done is so large that different techniques are needed depending on exactly what you have done and what you want to have happen.

Introducing TiddlyDesktop Video

12th September 2014 at 4:04pm

This brief introduction shows how to install and use TiddlyDesktop:

Introduction to filter notation

28th February 2015 at 10:45am
This explains the basics of writing a filter to select a set of tiddlers. For a more technical presentation, see Filter Syntax.

Filters do nothing if you just type them into a tiddler on their own. They need a context. An easy way to experiment with filters is to type them into the Filter tab of Advanced Search.

The simplest case is where you already know exactly which tiddlers you want. Type each title in double square brackets, with a space between each one and the next:

[[Recipe book]] [[ScrambledEggs]] [[Mom's apple pie]]

You can omit the square brackets when a title doesn't contain any spaces:

[[Recipe book]] ScrambledEggs [[Mom's apple pie]]

The double square brackets are actually a shorthand for this:

[title[ScrambledEggs]]

... which gives us the general model for any filter:

[operator[parameter]]

For instance, here's how to select all the tiddlers that have been tagged Recipe:

[tag[Recipe]]

We can reverse the meaning by adding an exclamation mark ! just before the operator. For example, we can select any tiddlers that do not have the Recipe tag:

[!tag[Recipe]]

Tiddlers can be filtered by other fields than just title and tags:

[field:serving[4]]

That example will select any tiddlers that have 4 in their serving field.

As the word "serving" isn't a standard filter operator (and isn't likely to become one), you can safely omit the field: prefix:

[serving[4]]

Combinations

The filters we've looked at so far have involved just one step each. But you can run several steps together like this:

[tag[Vegetarian]!tag[soup]serving[4]]

Notice how the entire run is contained in a single pair of square brackets.

A tiddler has to match all of the steps in a run. So the example above retrieves vegetarian recipes (other than soups) for 4 people.

A sequence of separate runs will select the tiddlers that match any of the runs. We can use this to find recipes that serve either 3, 4 or 5 people:

[serving[3]] [serving[4]] [serving[5]]

If we want to ignore vegetarian recipes that serve 4, we can say this:

[serving[3]] [serving[4]!tag[Vegetarian]] [serving[5]]

By default, each run considers every tiddler in the wiki. But we can use a + sign to force a run to consider only the tiddlers that were selected by the preceding runs:

[serving[3]] [serving[4]] [serving[5]] +[tag[Vegetarian]] +[sort[title]]

This selects recipes for 3, 4 or 5 people, then filters those to keep only the vegetarian ones, and finally sorts any that are left into alphabetical order of title.

In a similar way, we can use a - sign to remove a run's tiddlers from the result so far. Here we select all vegetarian recipes apart from two:

[tag[Vegetarian]] -[title[ScrambledEggs]] -BeansOnToast

Special parameters

The parameter of each step we've seen so far has been in square brackets, meaning that TiddlyWiki treats it literally. But two other kinds of bracket are possible:

Curly brackets {} mean that the parameter is a TextReference, and that its value is to be looked up in a specified tiddler. For example, if we have a tiddler called Preference whose text happens to be the word Vegetarian, we can say

[tag{Preference}]

as an alternative to [tag[Vegetarian]]. This allows the preference to change over time.

Angle brackets <> mean that the parameter is the name of a variable whose value is to be used instead. Here we use the built-in currentTiddler variable in a filter that selects any tiddlers whose text contains the title of the current one:

[search<currentTiddler>]

Introduction Video

26th November 2014 at 3:30pm

This brief presentation explains the basic principles of TiddlyWiki.

The TiddlyWiki used to produce the video can be found here:

http://tiddlywiki.com/editions/introduction/

Introduction Video Thumbnail.jpg

is Operator

20th February 2015 at 4:10pm
purposefilter the input by fundamental category
inputa selection of titles
parameterC = a category
outputthose input tiddlers that belong to category C
! outputthose input tiddlers that do not belong to category C

The parameter C is one of the following fundamental categories:

CategoryMatches any tiddler that...
currentis the current tiddler
imagehas an image ContentType
missingdoes not exist (other than possibly as a shadow tiddler), regardless of whether there are any links it
orphanhas no hard links to it
shadowis a shadow tiddler, regardless of whether it has been overridden with a non-shadow tiddler
systemis a system tiddler, i.e. its title starts with $:/
tagis in use as a tag
tiddlerexists as a non-shadow tiddler

If C is anything else, the output is an error message.

!is[tiddler] is a synonym for is[missing], and vice versa.

When is[missing] is the first operator in a run, its output is always empty. And when is[shadow] comes first, it outputs only those shadow tiddlers that have been overridden. This is because the initial input to a run contains only non-shadow tiddlers.

The all operator is similar, but its scope is the whole wiki.

Examples

is Operator (Examples)

19th January 2015 at 1:46pm

[is[tag]]

[!is[tag]]

[all[shadows]!is[system]]
→ shadow tiddlers that don't start with $:/

[is[system]tag[$:/tags/Stylesheet]]
→ system stylesheets

[all[shadows]is[system]tag[$:/tags/Stylesheet]]
→ shadow system stylesheets

[is[shadow]]
→ overridden shadow tiddlers

[is[missing]]
→ empty because its input contains only tiddlers that exist

JavaScript

11th February 2014 at 7:53pm

JavaScript is a computer language that was originally introduced by browsers as a way of scripting web pages. At first it was considered a poorly designed toy, but over the years has become recognised as a powerful language in its own right, and has been adopted widely beyond the browser.

JavaScript looks like this:

function circleArea(radius) {
	return radius * 2 * 3.141592653;
}

JavaScript Object Notation

21st February 2015 at 6:17pm

JSON is a standard plain-text format used for modelling hierarchical structures of objects that contain named fields.

DataTiddlers can have JSON content.

The jsontiddlers macro returns tiddler content in JSON format.

JeremyRuston

28th December 2013 at 8:43am

I'm the original inventor of TiddlyWiki. You can find me on these services:

Further information:

Jermolene

28th August 2013 at 8:02pm

Alias for JeremyRuston.

JSONTiddlers

21st February 2015 at 3:29pm

A JSON tiddler is a data tiddler containing a JSON structure in its text field.

Its ContentType is application/json.

The history list is a good example of a JSON tiddler.

jsontiddlers Macro

21st February 2015 at 3:42pm

The jsontiddlers macro returns the fields of a selection of tiddlers in JSON form.

An example can be seen in the template tiddler for JSON exports.

Parameters

filter
A filter selecting which tiddlers to include

KaTeX Plugin

7th January 2016 at 10:37pm

This plugin adds the ability to display mathematical notation written in LaTeX.

See http://tiddlywiki.com/plugins/tiddlywiki/katex/

KeyboardShortcuts

10th June 2016 at 9:21am

Keyboard shortcuts are available for common editing operations:

  • Confirming changes to the draft tiddler containing the keyboard focus (defaults to ctrl-Enter
  • Abandoning changes to the draft tiddler containing the keyboard focus (defaults to escape)
  • Formatting operations from the tiddler editing toolbar (see the tooltips)

The current shortcuts can be inspected and customised in the "Keyboard Shortcuts" tab of control panel .

KeyboardWidget

29th April 2016 at 6:52pm

Introduction

The keyboard widget allows ActionWidgets to be triggered by specific key combinations. There is also a shorthand for generating Messages via the message and param attributes.

Content and Attributes

The content of the <$keyboard> widget is rendered normally. The keyboard shortcuts only take effect when the focus is within the contained content.

AttributeDescription
actionsA string containing ActionWidgets to be triggered when the key combination is detected
messageThe title of the WidgetMessage to generate
paramThe parameter to be passed with the WidgetMessage
keyKey string identifying the key(s) to be trapped (see below)
classA CSS class to be assigned to the generated HTML DIV element

Key Strings

Key strings are made up of one or more key specifiers separated by spaces. Each key specifier is zero or more of the modifiers alt, shift, ctrl or meta followed by the name of a key, all joined with "+" plus or "-" minus symbols. Key names are either the letter or digit printed on the key (eg "a" or "1"), or one of the special keys backspace, tab, enter or escape.

For example:

A
shift+A
shift+escape
ctrl+enter
ctrl+shift+alt+A

Kill the Dragon

24th January 2015 at 1:13pm

This is a sample task for the TaskManagementExample

Korean (Korea Republic) Edition

24th April 2016 at 12:33pm

티들리위키 한국어 번역은 다음에서 사용할 수 있습니다:

Language Icon: ca-ES

Language Icon: cs-CZ

Language Icon: da-DK

Language Icon: de-AT

Language Icon: de-DE

Language Icon: el-GR

Language Icon: es-ES

Language Icon: fr-FR

Language Icon: hi-IN

Language Icon: ia-IA

Language Icon: it-IT

Language Icon: ja-JP

Language Icon: ko-KR

Language Icon: nl-NL

Language Icon: pa-IN

Language Icon: pt-PT

Language Icon: ru-RU

Language Icon: sk-SK

Language Icon: sv-SE

Language Icon: zh-Hans

Language Icon: zh-Hant

LanguageGallery

31st December 2015 at 8:41am

Here is an example of using the ListWidget and the TranscludeWidget to show a grid of all language icons (ie, tiddlers tagged Language and Icon).

Languages

17th June 2016 at 11:12am

Language Plugins

The core TiddlyWiki user interface is available in over 20 languages. You can install language plugins using the plugin manager under the control panel plugins tab. You can change the current language using the language button, found on the "Tools" tab in the sidebar.

You can contribute a new language to the library by learning how to translate TiddlyWiki into your language.

Language Editions

For some languages, there are pre-built editions with additional translated documentation:

last Operator

3rd February 2015 at 7:20pm
purposeselect the last N input titles
inputa selection of titles
parameterN = an integer, defaulting to 1
outputthe last N input titles

last Operator (Examples)

19th January 2015 at 6:21pm

These examples make use of the Days of the Week tiddler.

[list[Days of the Week]last[]]

[list[Days of the Week]last[5]]

[tag[Concepts]!sort[title]last[3]]

Latest

19th September 2014 at 6:05pm

The latest news, articles, resources and examples.

LazyLoading

5th November 2015 at 12:27pm

Ordinarily with TiddlyWiki, the full content of all tiddlers is embedded into the main HTML file. Lazy loading refers to the technique of only embedding metadata about the tiddler (in other words all fields except the text field), and requesting the body from the server when required.

Lazy loading can be used in two configurations:

See the LazyLoadingMechanism for details of how lazy loading is implemented.

Lazy loading under Node.js

To start TiddlyWiki with lazy loading for image tiddlers use this command:

tiddlywiki --server 8080 $:/core/save/lazy-images

To apply lazy loading to all non-system tiddlers use this command:

tiddlywiki --server 8080 $:/core/save/lazy-all

Lazy loading under TiddlyWeb

With the current configuration, lazy loading is enabled by default.

Learning

19th September 2014 at 5:17pm

limit Operator

3rd February 2015 at 6:54pm
purposeselect the first or last N input titles
inputa selection of titles
parameterN = an integer, defaulting to 0
outputthe first N input titles
! outputthe last N input titles

limit[N] and !limit[N] are synonyms for first[N] and last[N] respectively.

Examples

limit Operator (Examples)

23rd January 2015 at 9:43pm

[sort[modified]!limit[20]]
→ the 20 most recently modified tiddlers

[has[created]sort[created]limit[10]]
→ the oldest 10 tiddlers in the wiki

lingo Macro

21st February 2015 at 3:57pm

The lingo macro relates to the translation of TiddlyWiki's user interface into other languages. It returns a piece of text in the user's currently selected language.

Translatable text is supplied by language plugins containing tiddlers with specific titles that start with $:/language/.

Parameters

title
The title of the shadow tiddler that contains the text. The prefix $:/language/ is added automatically

Examples

lingo Macro (Examples)

21st February 2015 at 4:01pm

This example shows the text used as the basis for the title of a newly created tiddler:

<<lingo DefaultNewTiddlerTitle>>

This example shows the name of the eighth month of the year, for use in formatting dates:

<<lingo Date/Long/Month/8>>

LinkCatcherWidget

9th April 2014 at 8:46am

Introduction

The link catcher widget traps WidgetMessage: tm-navigate dispatched within its child content by performing any or all of these actions:

  • sending a different widget message
  • setting a tiddler to the title of the navigated tiddler
  • setting a tiddler to a specified value

Content and Attributes

The content of the <$linkcatcher> widget is displayed normally.

AttributeDescription
toOptional title of the tiddler to be set to the title of the navigated tiddler
messageOptional identifier for a widget message to be sent when a navigation is caught
setOptional title of the tiddler to be set to a specified value when navigation occurs
setToValue to be assigned by the set attribute

Linking in WikiText

7th June 2016 at 10:52am

A key capability of WikiText is the ability to make links to other tiddlers or to external websites.

Manual Links

Link to a tiddler by title:

[[Tiddler Title]]

To link to a tiddler and specify the text of the link:

[[Displayed Link Title|Tiddler Title]]

You can also create a link from the editor toolbar. Click link ( ), and search and select a tiddler.

CamelCase Links

For tiddler titles that match the CamelCase rules, just typing the title without double square brackets will automatically create a link.

You can suppress a link from being recognised by preceding it with ~. For example:

* ~HelloThere is not a link
* ~http://google.com/ is not a link

That renders as:

  • HelloThere is not a link
  • http://google.com/ is not a link

... and the underlying HTML is:

<ul><li>HelloThere is not a link</li><li>http://google.com/ is not a link</li></ul>

External Links

To link to an external resource such as a website or a file, type its full URL, including the URI scheme such as a protocol (e.g. http://, file://) or mailto:

http://tiddlywiki.com/

[[TW5|http://tiddlywiki.com/]]

[[Mail me|mailto:me@where.net]]

For this syntax to work, the URL has to be recognisable as a URL. Otherwise, it is treated as a tiddler title. As a result, in case you want to link to a resource locatable using a relative path, use the extended syntax:

[ext[Open file|index.html]]

[ext[Open file|./index.html]]

[ext[Open file|../README.md]]

The extended syntax still works with full URLs, although in that case it is not necessary:

[ext[http://tiddlywiki.com]]

[ext[TW5|http://tiddlywiki.com]]

You can also use the extended syntax to force an external link:

[ext[Donate|bitcoin:1aabbdd....?amount=0.001]]

Customising Tiddler Links

See the LinkWidget for details of the underlying widget used to implement tiddler links, including macros that can be used to customise its behaviour.

links Operator

3rd February 2015 at 6:55pm
purposefind the titles linked to by each input title
inputa selection of titles
parameternone
outputthe titles to which the input tiddlers contain hard links

Each input title is processed in turn. The corresponding tiddler's list of links is generated, in the order in which they appear in the tiddler's text, and dominantly appended to the operator's overall output.

Examples

links Operator (Examples)

24th January 2015 at 8:27pm

[[HelloThere]links[]]

[all[current]links[]]
→ tiddlers hard-linked from the current one

Here are some hard links:

LinkWidget

28th February 2015 at 2:43pm

The link widget generates links to tiddlers. (Use the HTML <a> element to generate external links).

Content and Attributes

AttributeDescription
toThe title of the target tiddler for the link (defaults to the current tiddler)
aria-labelOptional Accessibility label
tooltipOptional tooltip WikiText
tabindexOptional numeric tabindex
draggable"yes" to enable the link to be draggable (defaults to "yes")
tagOptional tag to override the default "a" element

The content of the link widget is rendered within the <a> tag.

The default value of the tooltip attribute is supplied by the tv-wikilink-tooltip variable.

This means that you can control the text of a link tooltip in several ways:

<$link to="HelloThere" tooltip="Custom tooltip">Link 1</$link>

<$set name="tv-wikilink-tooltip" value="I'm a link to {{!!title}}">
<$link to="HelloThere">Link 2</$link>
</$set>

Renders as:

Link 1

Link 2

Note that the tooltip is rendered with the current tiddler set to the target of the link.

A useful convention is to set the tooltip like this:

\define tv-wikilink-tooltip()
<$transclude field="tooltip"><$transclude field="title"/></$transclude>
\end

This causes the tooltip to be the tooltip field of the target tiddler. If the field isn't present, then the title is used instead.

CSS Classes

  • tc-tiddlylink - applied to all links
  • tc-tiddlylink-external - applied to external, non-tiddler links
  • tc-tiddlylink-internal - applied to tiddler links
  • tc-tiddlylink-missing - applied to tiddler links where the target tiddler doesn't exist
  • tc-tiddlylink-resolves - applied to tiddler links when the target tiddler does exist

Configuration variables

list Operator

20th February 2015 at 4:10pm
purposeselect titles via a list field
inputignored
! inputa selection of titles
parameterR = a reference to a field or property of a particular tiddler
outputthe titles stored as a title list at R
! outputthose input titles that are not mentioned at R

R can reference either a field or a property. See TextReference for the syntax.

  • If neither is specified, the list field is used by default. So [list[T]] outputs the titles listed in the list of tiddler T.
  • If R consists of only a field or a property, the tiddler part of the reference defaults to the current tiddler. So [list[!!tags]] outputs the titles listed in the tags field of the current tiddler.

Examples

list Operator (Examples)

23rd January 2015 at 9:44pm

These examples make use of the Days of the Week tiddler.

[list[HelloThere]]

[list[Days of the Week!!short]]

list-links Macro

21st February 2015 at 10:32pm

The list-links macro returns a formatted list of links to a selection of tiddlers.

If a tiddler has a caption field, this is shown instead of the tiddler's title.

Parameters

filter
A filter selecting which tiddlers to include
type
An HTML element to use for the overall list element, defaulting to ul
subtype
An HTML element to use for each item in the list, defaulting to li
class
A CSS class for the overall list element

Examples

list-links Macro (Examples)

21st February 2015 at 4:07pm

This example lists all the tiddlers whose titles start with J:

<<list-links filter:"[prefix[J]]">>

This example lists the documentation tiddlers for the core macros, each of which has a caption field:

<<list-links filter:"[tag[Core Macros]]">>

listed Operator

3rd February 2015 at 6:57pm
purposefind the titles that list the input titles
inputa selection of titles
parameterF = the name of a field, defaulting to list
outputthe titles in which field F mentions any of the input titles

F is assumed to be a title list.

Each input title is processed in turn. A list of tiddlers whose F field mentions it is generated (in no particular order) and dominantly appended to the operator's overall output.

Examples

listed Operator (Examples)

23rd January 2015 at 9:46pm

[[HelloThere]listed[]]

[all[current]listed[my-special-list]]

ListField

24th January 2015 at 8:29pm

The list field of a tiddler is an optional feature that can be used to help structure your content. Its value is a title list, and it can be used in several ways:

  • The list field of a tiddler that is being used as a tag determines the ordering of the tiddlers that carry that tag - see Tagging for details
  • The list filter selects the entries from a list
  • The listed filter selects the tiddlers that list the selected tiddler(s)
  • The NavigatorWidget manipulates a StoryList tiddler containing a list field of the tiddlers that are displayed in the main story column

ListopsData

8th November 2015 at 4:18am
DataIndex: 

Lists in WikiText

7th June 2016 at 10:31am

Bulleted Lists

You can create bulleted (unordered) lists with * characters ( ):

* First list item
* Second list item
** A subitem
* Third list item

That renders as:

  • First list item
  • Second list item
    • A subitem
  • Third list item

... and the underlying HTML is:

<ul><li>First list item</li><li>Second list item<ul><li>A subitem</li></ul></li><li>Third list item</li></ul>

Numbered Lists

Numbered (ordered) lists use # instead of * ( ):

  1. First item
  2. Second item
  3. Third item

You can also mix ordered and unordered list items:

* To do today
*# Eat
* To get someone else to do
*# This
*# That
*## And the other

That renders as:

  • To do today
    1. Eat
  • To get someone else to do
    1. This
    2. That
      1. And the other

... and the underlying HTML is:

<ul><li>To do today<ol><li>Eat</li></ol></li><li>To get someone else to do<ol><li>This</li><li>That<ol><li>And the other</li></ol></li></ol></li></ul>

Here's an example the other way around, with numbers as the first level:

# To do today
#* Eat
# To get someone else to do
#* This
#* That
#** And the other

That renders as:

  1. To do today
    • Eat
  2. To get someone else to do
    • This
    • That
      • And the other

... and the underlying HTML is:

<ol><li>To do today<ul><li>Eat</li></ul></li><li>To get someone else to do<ul><li>This</li><li>That<ul><li>And the other</li></ul></li></ul></li></ol>

CSS Classes

You can also assign a CSS class to an individual member of a list with this notation:

* List One
*.MyClass List Two
* List Three

That renders as:

  • List One
  • List Two
  • List Three

... and the underlying HTML is:

<ul><li>List One</li><li class="MyClass">List Two</li><li>List Three</li></ul>

Mixing Lists and Block Quotes

Note that Block Quotes in WikiText can be mixed with lists. For example:

* List One
** List Two
**> A quote
**> Another quote
* List Three

That renders as:

  • List One
    • List Two

      A quote

      Another quote

  • List Three

... and the underlying HTML is:

<ul><li>List One<ul><li>List Two<blockquote><p>A quote</p><p>Another quote</p></blockquote></li></ul></li><li>List Three</li></ul>

Paragraphs in Lists

Entries in the list are delimited with a linebreak, making it impossible to include linebreaks within a list entry. There are a couple of workarounds.

First, you can transclude paragraph content from another tiddler. For example:

* First entry
* <$transclude tiddler="MyTiddler" mode="block"/>
* Third entry

Secondly, you can use an HTML "div" element to contain the multiline content. For example:

# Step 1
# Step 2
# Step 3<div>

Here is the first of several paragraphs. Note that the double linebreak preceding this paragraph is significant.

And here is the second of several paragraphs.
</div>
# Step 4
# Step 5
# Step 6

ListWidget

23rd February 2015 at 10:37am

Introduction

The list widget displays a sequence of tiddlers that match a tiddler filter. It can be used for many purposes:

  • Displaying custom lists of links, like in TiddlyWiki5's sidebar
  • Custom lists, such as "all tiddlers tagged 'task' that are not tagged 'done'"
  • Listing each of the tags applied to a tiddler
  • Handling the main story river

The tiddlers are displayed by transcluding each in turn through a template. There are several ways to specify the template and for controlling the behaviour of the list.

Examples

plain list

<$list filter="[tag[ListWidget]sort[title]]"/>

Displays as:

GroupedLists

custom item output

<$list filter="[tag[ListWidget]sort[title]]">
<<currentTiddler>>
{{||$:/core/ui/ViewTemplate/tags}}
</$list>

Displays as:

GroupedLists

custom item template

<$list filter="[tag[ListWidget]sort[title]]" template="$:/core/ui/ViewTemplate/subtitle"/>

Displays as:

21st February 2015 at 11:01pm

Grouped Lists

See NestedLists for how to generate nested and grouped lists using the ListWidget.

Content and Attributes

The content of the <$list> widget is an optional template to use for rendering each tiddler in the list. Alternatively, the template can be specified as a tiddler title in the template attribute. As a fallback, the default template just displays the tiddler title.

AttributeDescription
filterThe tiddler filter to display
templateThe title of a template tiddler for transcluding each tiddler in the list. When no template is specified, the body of the ListWidget serves as the item template. With no body, a simple link to the tiddler is returned.
editTemplateAn alternative template to use for DraftTiddlers in edit mode
variableThe name for a variable in which the title of each listed tiddler is stored. Defaults to currentTiddler
emptyMessageMessage to be displayed when the list is empty
storyviewOptional name of module responsible for animating/processing the list
historyThe title of the tiddler containing the navigation history

Edit mode

The <$list> widget can optionally render draft tiddlers through a different template to handle editing, see DraftMechanism.

storyview attribute

The storyview attribute specifies the name of an optional module that can animate changes to the list (including navigation). The core ships with the following storyview modules:

  • classic: renders the list as an ordered sequence of tiddlers
  • zoomin: just renders the current tiddler from the list, with a zoom animation for navigating between tiddlers
  • pop: shrinks items in and out of place

In order for the storyviews to animate correctly each entry in the list should be a single block mode DOM element.

History and navigation

The optional history attribute specifies the name of a tiddler that is used to track the current tiddler for navigation purposes. When the history tiddler changes the list view responds by telling the listview to handle navigating to the new tiddler. See HistoryMechanism for details.

LoadCommand

19th January 2014 at 8:15pm

Load tiddlers from 2.x.x TiddlyWiki files (.html), .tiddler, .tid, .json or other files

--load <filepath>

To load tiddlers from an encrypted TiddlyWiki file you should first specify the password with the PasswordCommand. For example:

tiddlywiki ./MyWiki --password pa55w0rd --load my_encrypted_wiki.html

Note that TiddlyWiki will not load an older version of an already loaded plugin.

Macro Call Syntax

21st February 2015 at 10:23pm
What follows is a formal presentation of the syntax of the WikiText syntax for macro calls, using railroad diagrams. A simpler overview is also available.
<<namespaceparam-value>>

space denotes a sequence of whitespace characters.

The macro's name is a sequence of non-whitespace characters other than ( or >.

Each individual param-value has the following syntax:

param-namespace:spacevaluespace

The param-name is a sequence of letters (AZ, az), digits (09), hyphens (-) and underscores (_).

The value is specified as follows:

"""anything but """""""anything but ""'anything but ''[[anything but ]]]anything but ' " or whitespace

Macro Calls in WikiText

21st February 2015 at 10:13pm

To call a macro, place <<double angle brackets>> around the name and any parameter values.

By default, parameters are listed in the same order as in the macro's definition. A parameter can be labelled with its name, either for clarity or to modify the order.

If no value is specified for a parameter, the default value given for that parameter in the macro's definition is used instead. (If no default value was defined, the parameter is simply blank.)

Each parameter value can be enclosed in 'single quotes', "double quotes", """triple double quotes""" or [[double square brackets]]. Triple double quotes allow a value to contain almost anything. If a value contains no spaces or single or double quotes, it requires no delimiters.

A more formal presentation of this syntax is also available.

The syntax is actually a shorthand for a $macrocall widget. The widget itself offers greater flexibility, including the ability to transclude parameter values or generate them via additional macros.

As macros are simply parameterised variables, a variable's value can be inserted using the same techniques.

Examples

Macro Calls in WikiText (Examples)

21st February 2015 at 10:17pm

\define sayhi(name:"Bugs Bunny" address:"Rabbit Hole Hill")
Hi, I'm $name$ and I live in $address$.
\end
<<sayhi>>
<<sayhi Bugs>>
<<sayhi "Donald Duck" Disneyland>>
<<sayhi "Mickey Mouse" "Mouse House">>
<<sayhi name:'Minnie Mouse' address:[[Mouse House]]>>
<<sayhi address:"Quacky Towers" name:"Donald Duck">>
<<sayhi "Mickey Mouse" """"Mouse House",
Rodent's Lane,
Squeaksville,
Ratland""">>

Macro Definition Syntax

21st February 2015 at 10:23pm
What follows is a formal presentation of the syntax of the \define pragma, using railroad diagrams. A simpler overview is also available.
\definespacenameparamsspacerest

space denotes a sequence of whitespace characters.

The macro's name is a sequence of non-whitespace characters other than ( or >.

The parameter declaration list (params) has the following syntax:

(sepparamsep)

The parameter separator (sep) is any sequence of characters that does not match a param-name. Among other things, this includes commas, spaces and linefeeds.

A param-name is a sequence of letters (AZ, az), digits (09), hyphens (-) and underscores (_).

Each individual param has the following syntax:

param-namespace:spacedefault)

The optional default value of a parameter is specified as follows:

"""anything but """""""anything but ""'anything but ''[[anything but ]]]anything but ' " or whitespace

The rest of the definition has the following syntax:

snippetlfsnippetlf\endspacelf

lf denotes a linefeed.

The snippet is any sequence of characters that doesn't terminate the macro definition. That is to say, a single-line snippet cannot contain a linefeed, and a multi-line snippet cannot contain \end on a line of its own.

The snippet can contain placeholders with the following syntax:

$name$$(name)$

Macro Definitions in WikiText

21st February 2015 at 10:16pm

A macro is defined using a \define pragma. Like any pragma, this can only appear at the start of a tiddler.

The first line of the definition specifies the macro name and any parameters. Each parameter has a name, and optionally a default value that is used if no value is supplied on a particular call to the macro. The lines that follow contain the macro's text (i.e. the snippet represented by the macro name), until \end appears on a line by itself:

\define sayhi(name:"Bugs Bunny" address:"Rabbit Hole Hill")
Hi, I'm $name$ and I live in $address$.
\end

Alternatively, the entire definition can be presented on a single line, without an \end marker:

\define sayhi(name:"Bugs Bunny") Hi, I'm $name$.

A more formal presentation of this syntax is also available.

Placeholders

The snippet can contain placeholders for parameters. These consist of a parameter name between dollar signs, like $this$.

It can also contain placeholders for variables. These consist of a variable name (or macro name) between dollar signs and round brackets, like $(this)$.

The actual value of the parameter or variable is substituted for the placeholder whenever the macro is called:

\define say-hi-using-variables()
Hi, I'm $(name)$ and I live in $(address)$.
\end

\define name() Bugs
<$set name="address" value="Rabbit Hole Hill">
<<say-hi-using-variables>>
</$set>

Scope

Macros are available to the tiddler that defines them, plus any tiddlers that it transcludes.

To make a macro available to all tiddlers, define it in a tiddler that has the tag $:/tags/Macro.

It is also possible to write a macro as a JavaScript module. JavaScript macros are available to all tiddlers, and offer the maximum flexibility.

A tiddler can manually import macro definitions from a selection of other tiddlers by using the $importvariables widget.

Macro Syntax

27th February 2015 at 7:31pm

MacroCallWidget

30th October 2013 at 8:37am

Introduction

The macro call widget provides an alternative syntax for invoking macros. The advantage of the widget form is that it allows macro parameters to be specified as widget attributes, thus allowing indirection and macro values to be set.

For example, a macro called italicise that takes a single parameter called text can be invoked in any of these ways:

<<italicise "Text to be made into italics">>
<<italicise text:"Text to be made into italics">>
<$macrocall $name="italicise" text="Text to be made into italics"/>
<$macrocall $name="italicise" text={{Title of tiddler containing text to be italicised}}/>
<$macrocall $name="italicise" text=<<textMaker "Another macro to generate the text to be italicised">>/>

You can see several examples of the macro call widget within the core:

Content and Attributes

The content of the <$macrocall> widget is ignored.

AttributeDescription
$nameName of the macro to invoke
$typeContentType with which the macro text should be parsed (defaults to text/vnd.tiddlywiki)
$outputContentType for the output rendering (defaults to text/html, can also be text/plain)
parametersMacro parameters specified as attributes

Macros

28th February 2015 at 11:49am

A macro is a named snippet of text. WikiText can use the name as a shorthand way of transcluding the snippet. Such transclusions are known as macro calls, and each call can supply a different set of parameters that get substituted for special placeholders within the snippet.

For the syntax, see Macros in WikiText.

Most macros are in fact just parameterised variables.

They are created using the \define pragma. (Behind the scenes, this is transformed into a $set, i.e. macros and variables are two sides of the same coin.)

The snippet and its incoming parameter values are treated as simple strings of characters with no WikiText meaning, at least until the placeholders have been filled in and the macro call has returned. This means that a macro can assemble and return the complete syntax of a WikiText component, such as a link. (See Transclusion and Substitution for further discussion of this.)

The string returned by a macro call is parsed separately from any surrounding WikiText components. So a safe way to insert a special character sequence (such as [[ or <) without triggering its normal WikiText meaning is to wrap it in a macro.

Within a snippet itself, the only markup detected is $name$ (a placeholder for a macro parameter) and $(name)$ (a placeholder for a variable).

The dumpvariables macro lists all variables (including macros) that are available at that position in the widget tree.

An $importvariables widget can be used to copy macro definitions to another branch of the widget tree. TiddlyWiki uses this technique internally to implement global macros – namely any macros defined in tiddlers with the $:/tags/Macro tag.

For maximum flexibility, macros can also be written as JavaScript modules.

A similar effect to a parameterised macro call can be produced by setting variables around a transclusion.

TiddlyWiki's core has several macros built in.

Macros in WikiText

21st February 2015 at 9:40am

The use of macros in WikiText has two distinct aspects:

Make the beds

25th August 2013 at 3:31pm

This is a sample task for the TaskManagementExample

makedatauri Macro

21st February 2015 at 10:34pm

The makedatauri macro takes a piece of text and an associated ContentType, and returns a corresponding data URI.

makedatauri is used to implement the datauri macro.

Parameters

text
The text to be converted to a data URI
type
The ContentType of the text

Examples

makedatauri Macro (Examples)

21st February 2015 at 10:36pm

<<makedatauri "some example text" "text/plain">>

MakeLibraryCommand

3rd September 2014 at 9:52am

Constructs the $:/UpgradeLibrary tiddler for the upgrade process.

The upgrade library is formatted as an ordinary plugin tiddler with the plugin type library. It contains a copy of each of the plugins, themes and language packs available within the TiddlyWiki5 repository.

This command is intended for internal use; it is only relevant to users constructing a custom upgrade procedure.

--makelibrary <title>

The title argument defaults to $:/UpgradeLibrary.

See the UpgradeMechanism for more details.

Making curved text with SVG

5th May 2015 at 7:37am

This demo shows how to use SVG to render transcluded text along a path. Enter some text in the textbox below to try it out; view the source to see how it is done.

Manually installing a plugin

17th June 2016 at 11:49am
  1. Create a backup of your current TiddlyWiki HTML file (just in case)
  2. Open your TiddlyWiki in a browser
  3. In another browser window, find a link to the plugin, e.g. $:/plugins/tiddlywiki/example. You will typically find these links on the home page of the plugin (for example, http://tiddlywiki.com/plugins/tiddlywiki/katex/)
  4. Drag the link $:/plugins/tiddlywiki/example to the browser window containing your TiddlyWiki
  5. Save your TiddlyWiki ( )
  6. Refresh the page so that TiddlyWiki loads the new plugin ( )
  7. The plugin should now be available for use

Markdown Plugin

7th January 2016 at 10:37pm

The Markdown plugin enables you to use tiddlers that are written in standard Markdown markup.

See http://tiddlywiki.com/plugins/tiddlywiki/markdown/

MathJax Plugin by Martin Kantor

3rd April 2014 at 8:23pm

An experimental MathJax plugin for TiddlyWiki version 5. As Martin says, the implementation is a bit of a hack but may be useful until we have a better alternative.

http://mathjax-tw5.kantorsite.net

Welcome. I have created plugin for TiddlyWiki 5 which allows you to use MathJax (math in TeX and MathML) inside TiddlyWiki 5. It's unofficial plugin and it doesn't follow general policy of TiddlyWiki as stand-alone solution but it works. So you can use it if you want.

MathML

19th September 2014 at 5:16pm

MathML is a markup language for mathematical notation that can be used with HTML.

If your browser supports it, MathML elements can be used in TiddlyWiki5 WikiText just like HTML.

Here is an example MathML equation from the W3C:

<math><mrow><mo>[</mo><mtable><mtr><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr></mtable><mo>]</mo></mrow></math>

Renders as:

[010001100]

Mechanisms

10th September 2014 at 10:17pm

Meetups

12th July 2016 at 1:15pm

Local meetings around the world for TiddlyWiki people:

If you are a TiddlyWiki enthusiast please consider starting a local TWIG in your area, it's a great way to spread the word about using TiddlyWiki

Messages

26th February 2014 at 9:02am

Modals

7th January 2016 at 10:56pm

Modals (or "wizards") fade the main TiddlyWiki window to display an isolated tiddler that must be explicitly dismissed by the user.

Modals are displayed with the WidgetMessage: tm-modal.

Modules

10th June 2016 at 9:22am

A module in TiddlyWiki5 is a tiddler containing executable JavaScript, of the type application/javascript and with the field module-type set to the ModuleType of the module.

See control panel > Info > Advanced > Loaded Modules for a list of currently loaded modules.

modules Operator

3rd February 2015 at 6:58pm
purposeselect the names of all modules of the input module types
inputa selection of module types
parameternone
outputthe title of each module with any of the input types

modules Operator (Examples)

23rd January 2015 at 10:15pm

[[filteroperator]modules[]]

ModuleType

17th September 2015 at 8:38pm

The module-type field of a JavaScript module is a string that identifies the type of the module. Here is a list of the module types used in this wiki:

allfilteroperator
animation
Animations that may be used with the RevealWidget.
bitmapeditoroperation
command
Commands that can be executed under Node.js.
config
Data to be inserted into $tw.config.
filteroperator
Individual filter operator methods.
global
Global data to be inserted into $tw.
info
isfilteroperator
Operands for the is filter operator.
library
macro
JavaScript macro definitions.
parser
Parsers for different content types.
saver
Savers handle different methods for saving files from the browser.
startup
Startup functions.
storyview
Story views customise the animation and behaviour of list widgets.
texteditoroperation
tiddlerdeserializer
Converts different content types into tiddlers.
tiddlerfield
Defines the behaviour of an individual tiddler field.
tiddlermethod
Adds methods to the $tw.Tiddler prototype.
upgrader
Applies upgrade processing to tiddlers during an upgrade/import.
utils
Adds methods to $tw.utils.
utils-node
Adds Node.js-specific methods to $tw.utils.
widget
Widgets encapsulate DOM rendering and refreshing.
wikimethod
Adds methods to $tw.Wiki.
wikirule
Individual parser rules for the main WikiText parser.

moduletypes Operator

3rd February 2015 at 6:59pm
purposeselect the names of all TiddlyWiki module types
inputignored
parameternone
outputthe name of each known TiddlyWiki module type, in alphabetical order

moduletypes Operator (Examples)

23rd January 2015 at 10:16pm

[moduletypes[]]

Monday

18th January 2015 at 1:16pm

This example tiddler is used to illustrate some of the Filter Operators.

Motovun Jack.ascii

  ';.                                                           .;c'
 :XNo                                                          ,kjack'           .:dd
,K0X:                                                         '0l   Tiddly:',..,Wiki.
jacK'                                                        .dk.     '';jack  .xk;
Jack;                        ..',','...                      '0c                .0c
:0:c0l.                 .:dTidllyc::cjoWikioc:,,,,;;:cJACKc:;;d0.                'K:
 l0:'jack,...   ...',:lkxc.              ..';:ccc:;;,'...',:loc                 .Kc
  ,xk:..,jackjackjack;'.                                                        :K,
    .lxxl;..        .                                                          .Ox.
       .':lTiddlyWikI.                                                        .xk.
              ``   ;0;                                                 .     ;Od.
                   .dO'                                               .0Ojackx,
                     cOo'                                            .kk'.'..
                      .k0'                                         .cOo.
                      lO;          ...                          .jack.
                    .xk'          .jackTiddlyWikijackO,       .lkd;.
                   ;Oo.          .dO.              .ok.     ,Oo.
                  l0;    .c,     ,0:                .kd     l0.
                 .xk.   .xNx     lO.                 lO.    ;0,
                  .Od.  ,XW0,    :0;                 dk.    .kx.
                   .kx.  jACKx'   cOl.              .Ol      ;0:
                    .oO:  .JACKx.  .jack;'.         .0:       c0;
                      'dkc   ,lXKd'   .'jack.       .Ol        cOc.
                        .;ljack,.;xkc,...,oK,        'xxjack.   .oko.
                            ``       'cljack'              .okdlcJack.
                                                             'JacK,'

Motovun Jack.jpg

Motovun Jack.pdf

Motovun Jack.svg

move Operator

8th November 2015 at 8:24am
purposemove marker N places in the list
inputa list of items
suffixan integer N, defaulting to 1
parametermarker = the list item to be used as a marker
outputre-ordered list of items

move Operator (Examples)

8th November 2015 at 5:16am

These examples make use of the Days of the Week tiddler.

[list[Days of the Week]] +[move[Wednesday]]

[list[Days of the Week]] +[move:-2[Wednesday]]

MultiTiddlerFiles

21st June 2015 at 7:21pm

MultiTiddlerFiles allow multiple tiddlers to be concisely represented in a single text file.

The goals of this format are:

  • To be easy to type and easy to read
  • Optimised for single line strings
  • To allow common fields or tags to be shared within groups of tiddlers
  • To be simple to process with external tools

MultiTiddlerFiles have the extension multids. The file is structured as a block of shared fields followed by a blank line. The rest of the file is a sequence of comments and tiddlers. Tiddlers are specified by their title, followed by a colon, at least one space character, and then the rest of the line is the text field for the tiddler.

For example:

title: $:/language/ControlPanel/
tags: strings
modifier: JoeBloggs

Basics/Caption: Basics
# This is a comment
Basics/Version: ~TiddlyWiki Version

This example defines two tiddlers, $:/language/ControlPanel/Basics/Caption and $:/language/ControlPanel/Basics/Version.

If a title field is specified in the header then it is treated as a prefix for the individual tiddlers defined in the title.

Syntax Specification

MultiTiddlerFiles

Header LineBlank LineTiddler Descriptor LineComment Line

Header Line

Identifier:WhitespaceValueNew Line

Tiddler Descriptor Line

File Path:WhitespaceTiddler TitleNew Line

Comment Line

#TextWhitespaceNew Line

MultiTiddlerFileSyntax

21st June 2015 at 7:14pm

MultiTiddlerFiles

Header LineBlank LineTiddler Descriptor LineComment Line

Header Line

Identifier:WhitespaceValueNew Line

Tiddler Descriptor Line

File Path:WhitespaceTiddler TitleNew Line

Comment Line

#TextWhitespaceNew Line

namespace Variable

28th February 2015 at 1:37pm

The namespace variable is used internally by HTML widgets to keep track of the correct namespace for the DOM elements they generate.

An svg or math element supplies a distinct namespace for itself and any child elements it contains.

Naming of System Tiddlers

12th September 2014 at 3:26pm

The system tiddlers provided as part of the core are named according to the following rules:

NamespaceFormatDescription
$:/*CamelCaseRoot user interface tiddlers (eg control panel, advanced search)
$:/config/*CamelCaseUser-oriented configuration setting
$:/core/images/*hyphen-caseCore images
$:/core/modules/*lowercaseJavaScript module tiddlers
$:/core/save/*lowercaseSaving templates for creating TiddlyWiki documents
$:/core/templates/*inconsistentTemplates needed for TiddlyWiki to operate. Currently uses a mix of dashes and periods to separate words
$:/core/ui/*inconsistentTiddlers comprising the default user interface of TiddlyWiki. Currently uses a mix of CamelCase and lowercase naming conventions
$:/core/wiki/*lowercaseMetadata about the entire wiki
$:/docs/*lowercaseDocumentation tiddlers
$:/messages/*CamelCaseSystem messages
$:/plugins/*lowercasePlugin tiddlers, and plugin content
$:/snippets/*inconsistentReusable snippets (will be replaced by macros)
$:/state/*lowercaseUser interface state tiddlers
$:/tags/*CamelCaseUser interface configuration tags
$:/temp/*lowercaseTemporary tiddlers that shouldn't be saved
$:/themes/*lowercaseTheme plugins

In the format column:

  • hyphen-case refers to joining multiple lowercase words with hyphens
  • CamelCase refers to joining mulitple initial capitaled words with hyphens
  • lowercase refers to directly joining multiple lowercase words
  • inconsistent marks namespaces that are currently titled inconsistently

Navigating between open tiddlers

7th June 2016 at 3:52pm

In the default "classic" storyview mode, open tiddlers are displayed in a vertical column called the "story river". There are a number of ways you can navigate the story river - that is, how you can jump back and forth between the open tiddlers.

  • The best approach is to use the Open tab in the sidebar to click on the open tiddler to which you wish to navigate.
    • The Open tab contains a list of all the open tiddlers. You can click on any tiddler in the list to jump to it, or click the "×" next to a tiddler link to close it. There is also a handy close all button at the bottom of the list of open tiddlers.
  • Another way is to simply scroll the page up and down using the story river scrollbar to the right.
    • Note that when both the story river and the sidebar extend below the visible screen, there will be two scrollbars. The outer or far-right scrollbar controls the story river. The inner scrollbar controls the sidebar.
  • A clunky approach that many new users try is to close tiddlers one by one until they get to the tiddler they are looking for.
    • Closing any tiddler at the top or in the middle of the story river will cause all the tiddlers below it to slide up the river. The tiddler immediately below the tiddler you closed will slide up to take its place.
    • Closing the bottom tiddler will close it and the bottom of the tiddler above it will come into view.

NavigatorWidget

19th June 2015 at 4:40pm

Introduction

The navigator widget manipulates the current store, the story list and history lists in response to various Messages.

Content and Attributes

The navigator widget displays any contained content, and responds to Messages dispatched within it.

AttributeDescription
storyName of the tiddler containing the story list to be manipulated
historyName of the tiddler containing the history list to be manipulated
openLinkFromInsideRiverDetermines the location for opening new tiddlers from links within the story river: at the top or bottom of the story river, or above or below the current tiddler
openLinkFromOutsideRiverDetermines the location for opening new tiddlers from linkes outside the story river: at the top or bottom of the story river

Widget Messages

The following Messages are handled by the navigator widget:

New Release Banner.png

Newnham Horizon.jpg

next Operator

3rd February 2015 at 6:59pm
purposefind which titles in a list field follow the input ones
inputa selection of titles
parameterT = a tiddler title
outputa selection containing each title that immediately follows each of the input titles in the list field of T

Each input title is processed in turn, and its successor is located in the list field and appended to the output. If a title is not listed in the field, or is the last title there, then it contributes nothing to the output.

Examples

next Operator (Examples)

23rd January 2015 at 10:18pm

These examples make use of the Days of the Week tiddler.

[[Monday]next[Days of the Week]]

[[Sunday]next[Days of the Week]]

Tuesday Wednesday Thursday +[next[Days of the Week]]

node-webkit

10th March 2015 at 4:50pm

"node-webkit" was the original name for the project now known as NW.js.

Node.js

11th February 2014 at 7:54pm

Node.js is a downloadable application for your PC, Mac or Linux computer that lets it run JavaScript applications. Unlike JavaScript applications running in a web browser, Node.js code has full access to the file system and other resources of the computer, enabling it to perform the roles that have traditionally been the preserve of languages like Java, PHP and Python. See http://nodejs.org for more details.

For TiddlyWiki, Node.js means that we can have a single code base that can run in the browser or on the server, giving great flexibility in how it is used.

For end users, Node.js is no more complicated to install than a web browser, but unlocks powerful capabilities such as the ability to run TiddlyWiki as a web server that you can connect to from other devices.

See TiddlyWiki on Node.js for more details.

Notes for upgrading to 5.0.11-beta

16th May 2014 at 4:02pm

Version 5.0.11-beta includes some changes that can break content from earlier releases of TiddlyWiki 5.

Command line changes

Previously, commands that generate output files would interpret the specified path to the file as being relative to the current working directory. So, for example, the following command would write index.html to the current directory:

tiddlywiki mywiki --rendertiddler $:/core/save/all index.html text/plain

In 5.0.11-beta this behaviour has changed, and now the specified filename is resolved relative to an output folder within the TiddlyWikiFolder. So the command above will now write the file index.html to mywiki/output/index.html.

You can override this behaviour with the OutputCommand. For example, to generate the index.html file within the current directory:

tiddlywiki mywiki --output . --rendertiddler $:/core/save/all index.html text/plain

A further change is that the --rendertiddlers command now clears the output folder before it writes any files. This means that any previous --rendertiddler commands to the same folder will have their output deleted.

Notes for upgrading to 5.0.8-beta

23rd February 2014 at 7:55pm

Version 5.0.8-beta includes some changes that can break content from earlier releases of TiddlyWiki 5.

Change to $:/SiteTitle and $:/SiteSubtitle

You should rename any existing SiteTitle and SiteSubtitle tiddlers to $:/SiteTitle and $:/SiteSubtitle respectively.

Changed parsing rules for content of HTML elements

Version 5.0.8-beta marks a change in the way that TiddlyWiki determines whether to parse the content of an HTML element or widget in block mode or inline mode.

  • In block mode, TiddlyWiki parses text into paragraphs, creating <p> tags to wrap them. It also recognises block syntax like headings, lists and tables.
  • In inline mode, TiddlyWiki ignores paragraph formatting, and just recognises character formatting, like bold and italic.

It's important to be able to control which type of parsing is performed for different situations.

Prior to 5.0.8-beta, TiddlyWiki parsed the content of an element in inline mode unless the opening tag of the element were immediately followed by a line break. This meant that much of the time element tags would be shunted together into a long line, hindering readability.

The new behaviour for 5.0.8-beta is to parse the content of an element in inline mode unless the opening tag is immediately followed by two line breaks.

To adjust existing content for 5.0.8-beta you will need to manually add the additional line break after the opening tag of elements and widgets whose content should be parsed in block mode.

The positive aspect of the change is that it removes the need to pack multiple HTML tags onto a single line, improving readability.

Examples

Consider the difference between these two examples. First, here's an HTML tag that starts with two line breaks:


<blockquote>

! This is a heading

And a paragraph of text.

</blockquote>

That renders as:

This is a heading

And a paragraph of text.

... and the underlying HTML is:

<blockquote><h1 class="">This is a heading</h1><p>And a paragraph of text.</p></blockquote>

Secondly, here's an HTML tag with just a single line break. Notice how the heading is no longer recognised as a heading


<blockquote>
! This is a heading

And a paragraph of text.
</blockquote>

That renders as:

! This is a heading And a paragraph of text.

... and the underlying HTML is:

<p><blockquote>
! This is a heading

And a paragraph of text.
</blockquote>
</p>

Changed commands for TiddlyWiki on Node.js

The handling of wiki folders has changed. Previously, if the tiddlywiki command was run against a wiki folder that didn't have the necessary tiddlywiki.info file then it would be automatically created. Now, the wiki folder must be initialised with the InitCommand.

This is how to create and start a new server-based wiki:

tiddlywiki mywikifolder --init server
tiddlywiki mywikifolder --server

Note that the name of the clientserver edition has changed to server.

Notifications

7th January 2016 at 10:58pm

Notifications are small informational messages that appear at the top right of the TiddlyWiki window, and automatically disappear after a preset time.

now Macro

21st February 2015 at 5:03pm

The now macro returns the current date and time in a specified format.

The value doesn't update automatically, like a ticking clock. It updates whenever the macro call is rendered, such as when the containing tiddler's display needs to be refreshed for some other reason.

Parameters

format
A string specifying the desired format, defaulting to 0hh:0mm, DDth MMM YYYY

Examples

now Macro (Examples)

21st February 2015 at 5:04pm

<<now>>
<<now YYYY-0MM-0DD>>
<<now "hh:0mm:0sspm">>

nsort Operator

3rd February 2015 at 7:00pm
purposesort the input by number field
inputa selection of titles
parameterF = the name of a field, defaulting to title
outputthe input, sorted into ascending order by field F, treating field values as numbers
! outputthe input, likewise sorted into descending order

Non-numeric values are treated as having a higher value than any number, and the difference between capital and lowercase letters is ignored. Compare nsortcs.

Examples

nsort Operator (Examples)

23rd January 2015 at 10:21pm

10 010 1000 100 +[nsort[]]

10 010 ALPHA beta alpha 1000 100 +[nsort[]]

nsortcs Operator

17th April 2015 at 1:57pm
purposesort the input titles by number field, treating upper and lower case as different
inputa selection of titles
parameterF = the name of a field, defaulting to title
outputthe input, sorted into ascending order by field F, treating field values as numbers
! outputthe input, likewise sorted into descending order

Non-numeric values are treated as having a higher value than any number, and capital and lowercase letters are treated as different. Compare nsort.

Examples

nsortcs Operator (Examples)

23rd January 2015 at 10:21pm

10 010 1000 100 +[nsortcs[]]

10 010 ALPHA beta alpha 1000 100 +[nsortcs[]]

nth Operator

3rd February 2015 at 7:20pm
purposeselect the Nth input title
inputa selection of titles
parameterN = an integer, defaulting to 1
outputthe Nth input title

N is one-based. In other words, nth[1] has the same effect as the first operator.

Examples

nth Operator (Examples)

23rd January 2015 at 10:29pm

These examples make use of the Days of the Week tiddler.

[list[Days of the Week]nth[]]

[list[Days of the Week]nth[5]]

NW.js

10th March 2015 at 4:50pm

NW.js is an OpenSource application that fuses the functionality of a web browser with that of Node.js. It makes it possible to use web applications as though they were native apps, with full access to the file system and other native facilities. Learn more from the official site or this introductory blog post.

See TiddlyWiki on NW.js for details of how to use TiddlyWiki with NW.js.

Obadiah TOC

7th December 2013 at 8:45am

An introduction to the biblical book of Obadiah by Dave Gifford using the table of contents macro and various custom tweaks to TiddlyWiki: custom new here buttons, this custom viewtemplate addition to add notes or images within any tiddler, and a tiddler transcluding all the content, in order to facilitate printing (this tiddler).

http://giffmex.org/experiments/obadiah.html

OpenSource

25th August 2013 at 2:07pm

OpenSource is defined by Wikipedia as a philosophy, or pragmatic methodology that promotes free redistribution and access to an end product's design and implementation details.

Order of Tagged Tiddlers

17th September 2015 at 8:35pm

When TiddlyWiki generates a list of the tiddlers that have a particular tag (e.g. the dropdown list of a tag pill), it orders the tiddlers using the following rules:

  1. Start with any that are declared in the list field of the tag tiddler, in the order given there.
  2. In each remaining tiddler T, look for a list-before field. If this has a tiddler title as its value, place T just before that one.
    • As a special case, if the field exists but its value is empty, place T at the very start of the list.
  3. In each remaining tiddler T, look for a list-after field. If this has a tiddler title as its value, place tiddler T just after that one.
  4. If any tiddlers still remain, place them at the end of the list in ascending alphabetical order of title. The difference between capital and lowercase letters is ignored.

Osmosoft

1st November 2013 at 9:24am

Founded in 2004 by JeremyRuston, Osmosoft was originally a consultancy for software services around TiddlyWiki. Notable engagements included working with Socialtext on Socialtext Unplugged.

In 2007, Osmosoft was acquired by BT and became the champions for open source within the enterprise. As part of BT, Osmosoft has worked on a diverse range of projects within BT and for BT's customers.

See http://osmosoft.com/

OutputCommand

25th April 2014 at 9:57am

Sets the base output directory for subsequent commands. The default output directory is the output subdirectory of the edition directory.

--output <pathname>

If the specified pathname is relative then it is resolved relative to the current working directory. For example --output . sets the output directory to the current working directory.

OXTWIG

12th September 2014 at 4:03pm

The Oxford TiddlyWiki Interest Group meets monthly for discussions and demonstrations about TiddlyWiki.

See https://oxtwig.eventbrite.co.uk/ for details of our next meeting.

We have an email discussion list, too: https://groups.google.com/forum/#!members/oxtwig

OXTWIG #2

The second OXTWIG meeting was held on Thursday 16th January 2014:

OXTWIG #1

The first OXTWIG meeting was held on Thursday 21st November 2013:

Page and tiddler layout customisation

20th November 2014 at 12:53pm

One major feature of TiddlyWiki that many new users are unaware of is the degree to which TiddlyWiki can be customised, just by adding or removing SystemTags in key shadow tiddlers or in your own custom tiddlers.

  • You can add and remove default features in tiddlers in either viewing or editing mode (let's say you find the tiddler subtitle distracting, or you want to add yourself a reminder that you will see when you edit tiddlers)
  • You can also add and remove default features from the general page layout (maybe you want to add a clock to the sidebar, or replace one of the page control buttons with your own)
  • You can also rearrange the order in which these features are displayed (perhaps you would like tags above tiddler titles, or the subtitle of your TiddlyWiki below the page control buttons)

Once you know what you are doing, all of these things are actually pretty easy to do.

Adding custom-made tiddlers to the user interface

You can also create any tiddler you want and tag it with the appropriate SystemTag, and it will appear in that place. For example, if you create a tiddler 'Reminder to self', add the text 'This is a reminder' and tag it $:/tags/EditTemplate, the words 'This is a reminder' will appear inside every tiddler when you edit it.

When you add new tiddlers to be displayed within tiddlers or within the page layout, you will also probably need to reposition it so that it appears precisely where you want it to appear. To do this, edit the appropriate shadow tiddler with the prefix $:/tags/, and insert the title of your tiddler in the proper place in the list field. For example, if you want the words 'This is a reminder' from the example above to appear above the tags editor in editing mode, edit the tiddler $:/tags/EditTemplate, go to the 'list' field, and insert [[Reminder to self]] right before $:/core/ui/EditTemplate/tags.

Creating new buttons for the ViewToolbar and page controls

Let's say you have a skeleton tiddler called 'Recipe template', and you want to have a button available in the tiddler ViewToolbar to create new recipe tiddlers on demand. This will require the following steps:

  1. You will want an image for your button. If none of the core images (shadow tiddlers with the prefix $:/core/images/) work for you, then you will need to create or acquire an SVG image (for example, one of the images at http://flaticon.com), drag it into your file so that it becomes a tiddler, edit the tiddler and adjust the height and width to 22px
  2. You will want to create the tiddler that contains your tiddler. Create it, title it, and add the button code (see the code at the bottom of this tiddler for an example, with hints where you will need to adapt it). Tag it $:/tags/ViewToolbar
  3. You will need to create a tiddler that tells TiddlyWiki whether your button should be visible in the toolbar or hidden. Let's title it $:/config/ViewToolbarButtons/Visibility/Recipe. Type reveal into the text area, and save.
  4. You will want to position the button properly. Open the tiddler $:/tags/ViewToolbar and insert your button tiddler's title in the appropriate place in the list field.
\define newHereButtonTags()
[[$(currentTiddler)$]]
\end
\define newHereButton()
<$button class=<<tv-config-toolbar-class>>>
<$action-sendmessage
  $message="tm-new-tiddler"
$param="TITLE OF YOUR SKELETON BUTTON"
title="New tiddler"
  tags=<<newHereButtonTags>> />
<$list filter="[<tv-config-toolbar-icons>prefix[yes]]">
{{TITLE OF YOUR SVG IMAGE TIDDLER}}
</$list>
<$list filter="[<tv-config-toolbar-text>prefix[yes]]">
<span class="tc-btn-text"><$text text="CAPTION FOR YOUR BUTTON"/></span>
</$list>
</$button>
\end

<<newHereButton>>

Removing shadow tiddlers from the user interface

In the More > Shadows tab you will find a list of all the shadow tiddlers. In this list you will find many tiddlers with the prefix $:/core/ui/. These are the core tiddlers that define the user interface. These tiddlers are tagged with SystemTags, and removing or adding these tags will adjust the tiddler and page layouts.

For example, $:/core/ui/SideBar/More is the tiddler for the More tab in the Sidebar, and it is tagged with the SystemTag $:/tags/SideBar so that it appears in the Sidebar. Removing the tag from that tiddler will remove the More tab from the Sidebar, and reinserting the Sidebar tag to that tiddler will make it reappear in the Sidebar.

You can use the same process for any of the core user interface tiddlers with the $:/core/ui/ prefix. For example, removing the SystemTag $:/tags/ViewTemplate from the tiddler $:/core/ui/ViewTemplate/subtitle will remove the subtitles from all tiddlers.

If you modify a shadow tiddler in this way you will overwrite the pre-installed value. If you want to revert, just delete the modified tiddler to restore the underlying shadow tiddler.

Paragraphs in WikiText

14th December 2013 at 5:04pm

To mark the end of a paragraph in TiddlyWiki you need to type enter twice to create a double line break:

This is the first paragraph.

And this is the second paragraph.

Single line breaks are ignored within paragraphs. For example:

This is a
paragraph made
up of
short lines

That renders as:

This is a paragraph made up of short lines

... and the underlying HTML is:

<p>This is a
paragraph made
up of
short lines</p>

For situations where this behaviour isn't convenient, you can also use Hard Linebreaks in WikiText.

PasswordCommand

Set a password for subsequent crypto operations

--password <password>

Note: This should not be used for serving TiddlyWiki with password protection. Instead, see the password option under the ServerCommand.

PasswordWidget

30th October 2013 at 8:37am

Introduction

The password widget displays a password input box that is bound to a named entry in the TiddlyWiki5 PasswordVault. Passwords are currently stored in the browsers local storage and are not themselves encrypted.

Content and Attributes

The content of the <$password> widget is ignored.

AttributeDescription
nameName of the password vault entry

Percent Encoding

28th February 2015 at 1:15pm

Percent encoding is a notation that allows otherwise invalid characters to be included in a URI.

Such characters are represented as a percent sign % followed by two additional characters.

For example, a space is represented as %20 and an actual percent sign is represented as %25.

Performance

7th June 2016 at 3:52pm

TiddlyWiki ships with defaults that are designed to get the best out of modern devices from smartphones to desktop computers. If you need to work on older, less powerful devices, or work with large amounts of content, there are a few steps you can take to improve performance.

  • Avoid the "Recent" tab. It is computationally slow to generate and update in response to tiddler changes.
  • Use the "Vanilla" theme. The default "Snow White" theme includes visual effects like shadows, transparency and blurring that can be slow to render on older devices
  • Avoid large tiddlers. Large bitmaps can significantly slow TiddlyWiki's performance. For example, an image taken with a modern smartphone will often be 5MB or more. Use ExternalImages whenever possible
  • Don't have too many tiddlers open at once. Every tiddler you have open will require processing to keep it up to date as the store changes (for example, while you type into a draft tiddler). It is particularly easy when using zoomin story view to end up with dozens of tiddlers listed in the Open tab in the sidebar. Get into the habit of periodically closing all open tiddlers with the close all button

PerlinLight.jpg

PermaLinks

22nd June 2016 at 12:13pm

Permalinks allow direct links to individual tiddlers within a TiddlyWiki.

Simple Permalinks

The simplest form of permalink ( ) is a single target tiddler title appended to the base URL with #:

http://tiddlywiki.com/#HelloThere

The tiddler title can contain spaces if required:

http://tiddlywiki.com/#Using TiddlyWiki on Node.js

Note that double square brackets are not required around the target tiddler title; however, if present they are silently removed.

Story Permalinks

The permalink can also specify the story list of tiddlers that should be opened alongside the target tiddler as a TiddlerFilter:

http://tiddlywiki.com/#TiddlerFields:Tiddlers TiddlerTags TiddlerFields ContentType

If the target tiddler isn't present in the story list then it is automatically inserted at the top. This means that the following two examples both target the tiddler Tiddlers within the story sequence Tiddlers, Tags, TiddlerFields:

http://tiddlywiki.com/#Tiddlers:Tags TiddlerFields

http://tiddlywiki.com/#Tiddlers:Tiddlers Tags TiddlerFields

It is also possible to specify a story filter without specifying a target tiddler for navigation:

http://tiddlywiki.com/#:[tags[task]]

About URL encoding

There are technical restrictions on the legal characters in an URL fragment. To allow all tiddler titles to be addressed, illegal characters are subject to a process called "URL encoding" whereby problematic characters are replaced by their numeric code. For example, the space character is replaced with %20.

Both the target tiddler title and the story filter should be URL encoded (but not the separating colon). TiddlyWiki generates properly encoded URLs which can look quite ugly. However, in practice browsers will usually perfectly happily process arbitrary characters in URL fragments. Thus when creating permalinks manually you can choose to ignore URL encoding.

Permalink Behaviour

Two important aspects of TiddlyWiki's behaviour with permalinks can be controlled via options in the control panel Settings tab:

  • Whether to automatically update the address bar at each navigation, and if so whether to include the story sequence as well as the target tiddler
  • Whether the updates to the address bar should affect browser history. The default is no; when switched to yes you can rewind navigation between tiddlers using the browser back and forward buttons

Note that typing or navigating to a permalink will always cause the permalink to be processed, and tiddlers opened and closed as appropriate.

Technical Details

When TiddlyWiki starts up it processes permalinks according to the following steps; the same steps are repeated if the permalink changes dynamically (this happens in response to the user editing the address bar, for example).

  1. If the permalink contains a colon, treat the string before as the target and the string after it as the story filter
  2. If the permalink doesn't contain a colon, treat the entire string as the target and mark the story filter as unspecified
  3. If the story filter was unspecified and we're in the process of starting up, then set the story filter to the empty string if the target is specified, or to the default tiddlers if the target is unspecified
  4. If the story filter was unspecified and we're not starting up, then set the story filter to the current story list
  5. Evaluate the story filter as the story list
  6. If the target is specified and not present in the story list then add it at the top
  7. If the target is specified then navigate to it, otherwise navigate to the first tiddler in the story list

PESpot Lesson Planner by Patrick Detzner

3rd April 2015 at 11:52am

A system for lesson planning built with TiddlyWiki.

http://pespot.tiddlyspot.com

I built a program to help enter and store lesson plan information and then facilitate/automate some of the tedious work involved in creating the actual lesson plan document.

Philosophy of Tiddlers

19th September 2014 at 5:06pm

The purpose of recording and organising information is so that it can be used again. The value of recorded information is directly proportional to the ease with which it can be re-used.

The philosophy of tiddlers is that we maximise the possibilities for re-use by slicing information up into the smallest semantically meaningful units with rich modelling of relationships between them. Then we use aggregation and composition to weave the fragments together to present narrative stories.

TiddlyWiki aspires to provide an algebra for tiddlers, a concise way of expressing and exploring the relationships between items of information.

Pinstripe.gif

Platforms

12th April 2015 at 7:54pm

Plugin Editions

7th January 2016 at 10:37pm

These editions contain simple demos of the original set of TiddlyWiki plugins. They were prepared for earlier versions of TiddlyWiki that lacked the plugin library.

PluginMechanism

29th October 2014 at 10:17pm

Plugins are bundles of tiddlers that are distributed and managed as a single unit by being packed into a single JSON tiddler. If a tiddler isn't found in the main store, then the registered plugins are searched for it instead.

Tiddlers within plugins behave something like shadow tiddlers in classic TiddlyWiki: they can be freely overwritten by creating a tiddler with the same title, but deleting that tiddler restores the underlying tiddler value from the plugin.

Plugins have a plugin-type field that may be (see the table below):

  • plugin (default) - a plain plugin
  • theme - a theme plugin (see ThemeMechanism)
  • language - for translations only

Plugins can be used to package ordinary content, or can include JavaScript modules that extend and enhance the core TiddlyWiki5 functionality.

Plugins conventionally have a title of the form $:/plugins/publisher/name. Plugins that are part of the core TiddlyWiki distribution have titles of the form $:/plugins/tiddlywiki/name.

Plugins that define macros, views or other named entities are expected to prefix the name with their publisher identifier, for example: tiddlytools.slider.

Plugin fields

Plugins are stored as tiddlers with the following fields:

FieldDescription
titleTitle of plugin
descriptionDescription of plugin
authorAuthor of plugin
versionVersion string (must conform to SemanticVersioning convention)
sourceSource URL of plugin
typeMust be application/json
plugin-typeCan be plugin (default), language or theme
textJSON encoding of the list of tiddlers comprising the plugin
listNames of exposed plugin information tiddlers (see below)
nameName of the theme (only for themes)
dependentsList of dependent plugins (currently only implemented for themes)

Plugin folders

On the server, plugins can be stored as ordinary JSON tiddlers but it is often more convenient to store them as separate tiddler files within folders. Plugin folders must contain a plugin.info file that contains the metadata for the plugin. It can also optionally identify files external to the plugin folder that should be loaded as tiddlers.

The plugin.info file should contain the following JSON structure:

The JSON structure for plugin tiddlers is as follows:

{
	"title": "$:/plugins/publisher/name",
	"description": "An exemplary plugin for demonstration purposes",
	"author": "JeremyRuston",
	"version": "1.2.3-alpha3",
	"core-version": ">=5.0.0",
	"source": "http://tiddlywiki.com/MyPlugin",
	"plugin-type": "plugin",
	"list": "readme license history"
}

By convention, the titles of the individual tiddlers are prefixed with the title of the containing plugin, but they are not restricted to do so.

Note that if the version field is omitted from a plugin.info file when the plugin folder is packed then it is automatically filled in by the core to the current core version number. This is to ensure that all the core plugins carry the correct version number. Generally plugin authors will want to ensure that they do explicitly specify a version number.

Plugin library

The standard distribution of TiddlyWiki includes a number of standard plugins in the plugins directory.

Including plugins in a wiki

To be usable in the browser, plugins just need to be included in the wiki. For wikis that are generated on the server, TiddlyWikiFolders can contain a tiddlywiki.info file that identifies the plugins to be included in this wiki:

{
	"plugins": [
		"tiddlywiki/slider",
		"tiddlytools/chooser"
	]
}

Plugins names refer to plugin folders listed in TiddlyWiki5's root plugins folder.

Plugins can also be included manually by copying them into the plugins subfolder of the wiki.

Plugin processing

The wiki object keeps track of all of the currently loaded plugins. If a request for a tiddler isn't in the store then the wiki looks through the cascade of plugins to find the requested tiddler. It is a similar idea to the way that shadow tiddlers are implemented in classic TiddlyWiki.

In the browser, any constituent tiddlers that are JavaScript modules (ie shadow tiddlers of content type application/javascript and possessing the field module-type) are executed during startup processing.

Disabling Plugins

Plugins can be disabled by creating a tiddler titled $:/config/Plugins/Disabled/ concatenated with the plugin title, and setting its text to yes.

For example, to disable the plugin $:/plugins/tiddlywiki/highlight, the title would be:

$:/config/Plugins/Disabled/$:/plugins/tiddlywiki/highlight

Information Tiddlers for Plugins

Plugin authors are encouraged to provide special information and documentation tiddlers that TiddlyWiki can include as plugin information tabs in the control panel.

Plugins should provide an icon contained in a tiddler with the title formed of <plugin-name>/icon (for example, $:/core/icon).

Plugins expose the names of the individual information tabs that they wish to display in the list field of the plugin tiddler. By convention, some or all of the following should be provided:

  • readme: basic information about the plugin
  • license: the license under which the plugin is published

The title of the associated information tiddler must be formed as follows:

  1. $:/<plugin-name>/<current-language>/<tab-name> (for example, $:/core/en-GB/readme)
  2. $:/<plugin-name>/<tab-name> (for example, $:/core/readme)

Thus, plugins can provide language-specific versions of each information tiddler.

Note that information tiddlers should not reference other tiddlers within the plugin. This is because plugins containing themes or languages are dynamically switched in and out as they are selected, and so their information tiddlers may not be available for viewing. The control panel uses the 'subtiddler' attribute of the TranscludeWidget to access these tiddlers, which works independently of the plugin switching mechanism.

Plugins

7th January 2016 at 10:46pm

Plugins in TiddlyWiki5 are used to distribute optional components that customise and extend TiddlyWiki. You can install them from the official plugin library or from community sites.

Internally, plugins are a bundle of tiddlers packaged together as a single tiddler that can be installed, copied or deleted as a unit. The individual tiddlers within a plugin appear as ShadowTiddlers. See the PluginMechanism discussion for more details about how plugins are implemented internally.

Plugins can contain JavaScript modules, style sheets, and templates. Plugins can also be used to distribute ordinary text, images or any other content.

Plugins by TheDiveO

10th September 2014 at 11:28am

A collection of plugins from TheDiveO.

http://thediveo.github.io

TheDiveO's Third Flow plugin construction system:

The ThirdFlow plugin brings to you another way to develop customization plugins for TiddlyWiki 5. It is not enforcing a specific development flow, it simply tries to help you. Otherwise, it tries to stay out of your way.

TheDiveO's FontAwesome plugin:

The FontAwesome plugin supports embedding Font Awesome in TiddlyWiki 5. There is no need to install this font into your operating system in order to use it with TiddlyWiki 5. The font is already embedded in this TiddlyWiki 5 customization plugin instead, so nothing else to install.

plugintiddlers Operator

3rd February 2015 at 7:03pm
purposeselect all shadow titles in the input plugins
inputa selection of plugin tiddler titles
parameternone
outputall shadow titles contained in the input plugins

plugintiddlers Operator (Examples)

23rd January 2015 at 10:30pm

[[$:/core]plugintiddlers[]]

PopupMechanism

23rd December 2015 at 10:27pm

The popup mechanism allows blocks of content to be selectively displayed and positioned with respect to an anchor. It has several parts:

  • StateTiddlers to record whether a popup is currently displayed or not
  • The RevealWidget to selectively display the popup content
    • For "sticky" popups — those that don't close when clicking inside one — set the class attribute to tc-popup-keep
  • The ButtonWidget to trigger the display of the popup by setting the state tiddler appropriately

Pragma

21st February 2015 at 9:51pm

A pragma is a special component of WikiText that provides control over the way the remaining text is parsed.

Pragmas occupy lines that start with \. They can only appear at the start of the text, but blank lines are allowed between them. If a pragma line appears in the main body of the text, it is treated as if it was ordinary text.

The following pragmas are available:

\define
for defining a macro
\rules
for adjusting the set of rules used to parse the text

prefix Operator

3rd February 2015 at 7:27pm
purposefilter the input titles by how they start
inputa selection of titles
parameterS = a string of characters
outputthose input titles that start with S
! outputthose input tiddlers that do not start with S

In looking for matches for S, capital and lowercase letters are treated as different.

Examples

prefix Operator (Examples)

23rd January 2015 at 10:33pm

[tag[task]!prefix[Go]]

[prefix[$:/languages/]]

[prefix[$:/]]
→ same as [is[system]]

prepend Operator

8th November 2015 at 5:17am
purposeprepend a range of items from an array to the list
inputa list of items
suffixan integer N, defaulting to all
parameterlist = the array of items to be prepended to the head of the list
outputa list with items prepended from the head of the operand array
! outputa list with items prepended from the tail of the operand array

prepend Operator (Examples)

8th November 2015 at 5:17am

These examples make use of the Days of the Week tiddler.

The operator may be used to prepend a number of items to the list.

[list[Days of the Week]prepend[Yesterday Today Tomorrow]]

The operand may list only items without spaces – to include items with spaces, use a reference to an array e.g. prepend the last three short days of the week to the list

[list[Days of the Week]!prepend:3{Days of the Week!!short}]

Preserving open tiddlers at startup

12th September 2014 at 3:22pm

Ordinarily, at startup TiddlyWiki displays the tiddlers specified as a filter in the tiddler $:/DefaultTiddlers.

Sometimes it's useful to re-open the same tiddlers that were open when the file was saved. To do so, set $:/DefaultTiddlers to this filter:

[list[$:/StoryList]]

This filter returns the tiddlers specified in the $:/StoryList tiddler, which is the system tiddler that TiddlyWiki uses to store the sequence of tiddlers in the current story.

previous Operator

3rd February 2015 at 7:05pm
purposefind which titles in a list field precede the input ones
inputa selection of titles
parameterT = a tiddler title
outputa selection containing each title that immediately precedes each of the input titles in the list field of T

Each input title is processed in turn, and its predecessor is located in the list field and appended to the output. If a title is not listed in the field, or is the first item there, then it contributes nothing to the output.

Examples

previous Operator (Examples)

23rd January 2015 at 10:34pm

These examples make use of the Days of the Week tiddler.

[[Wednesday]previous[Days of the Week]]

[[Monday]previous[Days of the Week]]

Tuesday Wednesday Thursday +[previous[Days of the Week]]

putafter Operator

8th November 2015 at 5:18am
purposemove N trailing items after the marker
inputa list of items
suffixan integer N, defaulting to 1
parametermarker = the list item to be used as a marker
outputre-ordered list of items

putafter Operator (Examples)

8th November 2015 at 5:18am

These examples make use of the Days of the Week tiddler.

[list[Days of the Week]] +[putafter[Wednesday]]

[list[Days of the Week]] +[putafter:2[Tuesday]]

[list[Days of the Week]] [[Yesterday]] [[Today]] [[Tomorrow]] +[putafter:3[Tuesday]]

putbefore Operator

purposemove N trailing items before the marker
inputa selection of titles
suffixan integer N, defaulting to 1
parametermarker = an integer, defaulting to 1
outputthe first N input titles

putbefore Operator (Examples)

8th November 2015 at 5:19am

These examples make use of the Days of the Week tiddler.

[list[Days of the Week]] +[putbefore[Wednesday]]

[list[Days of the Week]] +[putbefore:2[Tuesday]]

[list[Days of the Week]] [[Yesterday]] [[Today]] [[Tomorrow]] +[putbefore:3[Tuesday]]

putfirst Operator

8th November 2015 at 5:19am
purposemove N trailing items to the head of the list
inputa list of items
suffixan integer N, defaulting to 1
parameterignored
outputre-ordered list of items

putfirst Operator (Examples)

8th November 2015 at 5:19am

These examples make use of the Days of the Week tiddler.

[list[Days of the Week]] +[putfirst[]]

[list[Days of the Week]] +[putfirst:2[]]

[list[Days of the Week]] [[Yesterday]] [[Today]] [[Tomorrow]] +[putfirst:-2[]]

putlast Operator

8th November 2015 at 5:20am
purposemove N leading items to the tail of the list
inputa list of items
suffixan integer N, defaulting to 1
parameterignored
outputre-ordered list of items

putlast Operator (Examples)

8th November 2015 at 5:20am

These examples make use of the Days of the Week tiddler.

[list[Days of the Week]] +[putlast[]]

[list[Days of the Week]] +[putlast:2[]]

one two three [list[Days of the Week]] +[putlast:-3[]]

qualify Macro

21st February 2015 at 10:38pm

The qualify macro is an important part of the StateMechanism.

It returns a unique string that encodes its position within the widget tree, as identified by the stack of transcluded tiddlers that lead to that position.

It is implemented using the transclusion variable.

Parameters

title
The prefix for the returned string, normally a tiddler title

Examples

qualify Macro (Examples)

The results returned by the qualify macro depend on its location in the transclusion stack.

The two examples below are identical, but produce different results because the second one has been transcluded from another tiddler.

Each example shows the result of calling qualify and then the value of the transclusion variable.

<ul>
<li><code><<qualify "BaseTiddler">></code></li>
<li><code><<transclusion>></code></li>
</ul>

<ul>
<li><code><<qualify "BaseTiddler">></code></li>
<li><code><<transclusion>></code></li>
</ul>

Quine

Wikipedia defines a Quine as a computer program which takes no input and produces a copy of its own source code as its only output.

TiddlyWiki is an unusual example of a practical quine: it is this ability to produce a copy of its own source code that lies at the heart of TiddlyWiki's ability to independently save changes to itself.

RadioWidget

20th February 2015 at 4:13pm

Introduction

The radio widget displays an HTML <input type="radio"> that reflects whether a given tiddler field has a specified value. Selecting the radio button sets to the tiddler field to the value.

Content and Attributes

The content of the <$radio> widget is displayed within an HTML <label> element also containing the radio button. This means that clicking on the content will have the same effect as clicking on the button itself.

AttributeDescription
tiddlerTitle of the tiddler to manipulate (defaults to the current tiddler)
fieldThe name of the field to which the radio button will be bound
valueThe value for the tiddler field
classCSS classes to be assigned to the label around the radio button

Example

This example uses the radio widget to change the modifier field of this tiddler:

<$radio field="modifier" value="JoeBloggs"> Joe Bloggs</$radio>

<$radio field="modifier" value="JaneBloggs"> Jane Bloggs</$radio>

It renders as:

Railroad Diagrams

24th January 2015 at 6:13pm

Railroad diagrams, sometimes called syntax diagrams, are a visual way of explaining the syntax rules of a computer language. Reading one is like reading a public transport map.

Each diagram starts on the left and ends on the right. Simply follow any line from the startpoint to the endpoint. All the alternative lines are equally valid. A line will sometimes jump over an item that is optional, or loop back to indicate that an item can be repeated.

startoptionalrepeated,end

In the example above, a comma appears between each occurrence of the repeated item. The comma path runs from right to left, and can only be reached by first passing through repeated.

Characters in round boxes are literal, i.e. they denote themselves. A name in a rectangular box denotes a further railroad diagram.

The railroad diagrams in TiddlyWiki's documentation are generated with the Railroad Plugin.

Railroad Plugin

7th January 2016 at 10:37pm

This plugin provides a <$railroad> widget for generating railroad diagrams as SVG images.

Alternatively, the diagram notation can be stored in a dedicated tiddler with its type field set to text/vnd.tiddlywiki.railroad, and that tiddler can simply be transcluded to wherever it is needed.

The plugin is based on a library by Tab Atkins, and has been extended to make it more flexible, including allowing components of a diagram to function as links or be transcluded from other tiddlers.

The railroad widget uses a special notation to construct the components defined below.

x and y here stand for any component.

Names (as opposed to quoted strings) are available when a value starts with a letter and contains only letters, digits, underscores, dots and hyphens.


sequence
<-x->
  • A sequence of components
  • The <- and -> delimiters allow you to force a single component to be treated as a sequence. This is occasionally useful for spacing a diagram out

optional
[:x]
  • A component that can be omitted
  • The colon makes x appear straight ahead

repeated
{x+y}
  • A list of one or more x
  • The + suffix adds y as a separator between each x and the next

optional repeated
[{:x+y}]
  • An optional list of x, i.e. a list of zero or more x

choice
(:x|)
  • A set of alternatives
  • The colon indicates which branch appears straight ahead. By default, it's the first branch

string / terminal
"text"'text'"""text"""
  • A literal or terminal component
  • This follows the normal TiddlyWiki rules for quoted strings

nonterminal
name<string>
  • A nonterminal component, i.e. the name of another diagram

comment
/string/
  • A comment

dummy
-
  • The absence of a component

link
[[x|namestring]]
  • A link to the tiddler title or URI given by the string or name

transclusion
{{namestring}}
  • Treats the content of another tiddler as diagram syntax and transcludes it into the current diagram

arrow pragma
\arrowyesno
  • Controls whether repeat paths have an arrow on them
  • Can be toggled on and off in mid-diagram, if desired

debug pragma
\debug
  • Causes the diagram to display its parse tree

start/end pragma
\start\endnonesingledouble
  • Controls the style of the diagram's startpoint or endpoint

rboue's plugins for TiddlyWiki

30th June 2015 at 5:56pm

Featuring plugins that integrate two interesting new capabilities:

http://rboue.tiddlyspot.com

I developed some plugins related to engineering tasks.

After using them for personal projects I'm glad to share with TiddlyWiki community.

ReadMe

20th September 2014 at 2:52pm

Welcome to TiddlyWiki, a non-linear personal web notebook that anyone can use and keep forever, independently of any corporation.

TiddlyWiki is a complete interactive wiki in JavaScript. It can be used as a single HTML file in the browser or as a powerful Node.js application. It is highly customisable: the entire user interface is itself implemented in hackable WikiText.

Learn more and see it in action at http://tiddlywiki.com/

Developer documentation is in progress at http://tiddlywiki.com/dev/

Installing TiddlyWiki on Node.js

  1. Install Node.js
    • either from your favourite package manager: typically apt-get install nodejs on Debian/Ubuntu Linux or Termux for Android, or brew install node on a Mac
    • or directly from http://nodejs.org
  2. Open a command line terminal and type:

    npm install -g tiddlywiki

    If it fails with an error you may need to re-run the command as an administrator:

    sudo npm install -g tiddlywiki (Mac/Linux)

  3. Check TiddlyWiki is installed by typing:

    tiddlywiki --version

  4. In response, you should see TiddlyWiki report its current version (eg "5.1.13"; you may also see other debugging information reported)
  5. Try it out:
    1. tiddlywiki mynewwiki --init server to create a folder for a new wiki that includes server-related components
    2. tiddlywiki mynewwiki --server to start TiddlyWiki
    3. Visit http://127.0.0.1:8080/ in your browser
    4. Try editing and creating tiddlers
  6. Optionally, make an offline copy:
    • click the save changes button in the sidebar, OR
    • tiddlywiki --build index

The -g flag causes TiddlyWiki to be installed globally. Without it, TiddlyWiki will only be available in the directory where you installed it.

If you are using Debian or Debian-based Linux and you are receiving a node: command not found error though node.js package is installed, you may need to create a symbolic link between nodejs and node. Consult your distro's manual and whereis to correctly create a link. See github issue 1434

Example Debian v8.0: sudo ln -s /usr/bin/nodejs /usr/bin/node

Using TiddlyWiki on Node.js

TiddlyWiki5 can be used on the command line to perform an extensive set of operations based on TiddlyWikiFolders, TiddlerFiles and TiddlyWikiFiles.

For example, the following command loads the tiddlers from a TiddlyWiki HTML file and then saves one of them in static HTML:

tiddlywiki --verbose --load mywiki.html --rendertiddler ReadMe ./readme.html

Running tiddlywiki from the command line boots the TiddlyWiki kernel, loads the core plugins and establishes an empty wiki store. It then sequentially processes the command line arguments from left to right. The arguments are separated with spaces.

The first argument is the optional path to the TiddlyWikiFolder to be loaded. If not present, then the current directory is used.

The commands and their individual arguments follow, each command being identified by the prefix --.

tiddlywiki [<wikipath>] [--<command> [<arg>[,<arg>]]]

The available commands are:

Upgrading TiddlyWiki on Node.js

If you've installed TiddlyWiki on Node.js on the usual way, when a new version is released you can upgrade it with this command:

npm update -g tiddlywiki

On Mac or Linux you'll need to add sudo like this:

sudo npm update -g tiddlywiki

Also see

This readme file was automatically generated by TiddlyWiki

ReadMeBinFolder

8th September 2014 at 4:08pm

Script Files

The TiddlyWiki5 repository contains several scripts in the bin folder that you can use to automate common tasks, or as a useful starting point for your own scripts. See Scripts for building tiddlywiki.com for details of the scripts used to build and release http://tiddlywiki.com/.

All the scripts expect to be run from the root folder of the repository.

serve: serves tw5.com

./bin/serve.sh -h
./bin/serve.sh [edition dir] [username] [password] [host] [port]

Or:

./bin/serve.cmd -h
./bin/serve.cmd [edition dir] [username] [password] [host] [port]

This script starts TiddlyWiki5 running as an HTTP server, defaulting to the content from the tw5.com-server edition. By default, the Node.js serves on port 8080. If the optional username parameter is provided, it is used for signing edits. If the password is provided then HTTP basic authentication is used. Run the script with the -h parameter to see online help.

To experiment with this configuration, run the script and then visit http://127.0.0.1:8080 in a browser.

Changes made in the browser propagate to the server over HTTP (use the browser developer console to see these requests). The server then syncs changes to the file system (and logs each change to the screen).

test: build and run tests

This script runs the test edition of TiddlyWiki on the server to perform the server-side tests and to build test.html for running the tests in the browser.

lazy: serves tw5.com with lazily loaded images

./bin/lazy.sh <username> [<password>]

Or:

./bin/lazy.cmd <username> [<password>]

This script serves the tw5.com-server edition content with LazyLoading applied to images.

2bld: builds TiddlyWiki 2.6.5

This script builds TiddlyWiki 2.6.5 from the original source and then displays the differences between them (diff is used for *nix, fc for Windows).

Reference

10th July 2016 at 4:08pm

Reference Tiddlers

17th January 2015 at 3:25pm

Reference tiddlers offer raw information in a comprehensive interlinked way. The reader is likely to be an intermediate or expert user.

There are several subcategories:

Concepts
  • With definitions, together forming a glossary
User manual
  • Presenting technical details of WikiText features
  • Subcategorised: messages, operators, widgets, etc
Developer manual
  • Presenting technical details of TiddlyWiki's internal architecture

Reference material is written in a terse, formal style that avoids referring to the reader, and instead focuses on how TiddlyWiki itself behaves. The passive voice is often suitable:

  • "the template is specified as a tiddler" rather than "specify the template as a tiddler"
  • "the widget can be used for various purposes" rather than "you can use the widget for various purposes"
  • But "this widget has several possible uses" is better, because it is less convoluted and more succinct

Most contracted verb forms are avoided in reference tiddlers. But those ending in "n't" ("aren't", "doesn't", "hasn't", "isn't", etc) are acceptable, as they make it less easy to accidentally overlook the word "not".

regexp Operator

3rd February 2015 at 7:06pm
purposefilter the input by pattern-matched field
inputa selection of titles
suffixF = the name of a field
parameterX = a regular expression
outputthose input tiddlers in which field F matches X
! outputthose input tiddlers in which field F does not match X

Regular expressions are concise strings of characters that denote patterns of text to search for. The format used in TiddlyWiki is fully defined in this Mozilla reference.

The filter syntax makes it impossible to directly specify a regular expression that contains square brackets. The solution is to store the expression in a variable. See the examples.

The parameter X can optionally start or end with a string of flags:

(?mig)

Only the i flag is generally useful: it forces the different between capital and lowercase letters to be ignored.

If X is empty, regexp will match all of the input tiddlers.

Examples

regexp Operator (Examples)

23rd January 2015 at 10:53pm

These examples make use of the Days of the Week tiddler.

[!is[system]regexp[Wiki]]
→ non-system tiddlers with Wiki in their title

[!is[system]regexp[(?i)Wiki]]
→ non-system tiddlers with Wiki in their title, ignoring case

[!is[system]regexp[Wiki(?i)]]
→ same again

[regexp[(?i)\.jpe?g$]]
→ tiddlers with titles ending in .jpg or .jpeg, ignoring case

[regexp:created[^201408]]
→ tiddlers created in August 2014

The regular expression [0-9]{2} matches two consecutive digits. Because it contains square brackets, the way to use it with the regexp operator is via a variable, as follows:

Release 5.0.0-alpha.11

8th November 2013 at 5:54pm

This release is the culmination of a large scale refactoring of the widget mechanism of TiddlyWiki5. There are several changes to be aware of if upgrading from earlier versions:

  • The following widgets have been removed:
    • <$setstyle> - use <div style=<<macroName Param>>> instead
    • <$video> - will return in a later release
    • <$datauri> - use the <<makedatauri>> built-in macro instead
    • <$error> - may return in a later release
    • <$import> - use the BrowseWidget, DropzoneWidget and NavigatorWidget instead
    • <$info> - use the <<changecount>> built-in macro instead
    • <$version> - use the <<version>> built-in macro instead
  • The following widgets have had significant changes:
    • EditWidget
    • ListWidget - the list widget itself no longer generates HTML nodes, so you'll often need to wrap the template in a <div> or a <span> to be able to style the content
    • ViewWidget - has several changes:
      • <$view format="link"/> is no longer available; use an explicit <$link> widget instead
      • <$view format="link"/> is no longer available; use the TranscludeWidget instead
  • The following new widgets have been added:
  • Widget attribute names have been made more consistent. In particular, tiddler is used to reference a tiddler by title, not title
  • It is no longer possible to import the macro definitions within another tiddler by transcluding that tiddler
  • The body element now has the class tw-body, which will need to be specified in any overrides
    • This was done due to the new support for HTML foreign objects, which makes it possible to have multiple <body> elements in a document

Release 5.0.0-alpha.12

8th November 2013 at 6:54pm

See GitHub for detailed change history of this release

This minor release just contains fixes for the syncer and related adaptor modules for the TiddlyWeb edition and for TiddlyWiki5's integrated server.

Release 5.0.0-alpha.13

9th November 2013 at 11:22am

See GitHub for detailed change history of this release

This release has several bug fixes:

  • Fixes to DaveGifford's themes blanca, blue and rocker
  • Fix an issue with the <$edit-text> widget
  • Documentation updates
  • Improved deployment scripts
  • Made the modifier field in the subtitle be a link
  • Styling improvements for the CodeMirror plugin
  • Improved the ViewWidget so that it falls back to displaying its content if the field/property is missing or empty
  • Extend use of the built-in <<tabs>> macro to the tiddler info panel, the control panel and the sidebar
    • This means that you can add new tabs by creating tiddlers with these tags, and optionally a caption field for the text of the tab:

Release 5.0.0-alpha.14

10th November 2013 at 7:22pm

See GitHub for detailed change history of this release

This release has several bug fixes:

  • Improved the layout of the control panel
  • Fixed problem with using the CheckboxWidget to apply tags to tiddlers that don't have any existing tags
  • Fixed problem with default password for the PasswordWidget being the string "null"

Release 5.0.0-alpha.15

12th November 2013 at 8:50pm

See GitHub for detailed change history of this release

New Features

  • Added a dropdown to the edit template for setting the tiddler type
  • A saver module for Microsoft Internet Explorer version 10 and above. Clicking save in the sidebar causes the browser to pull up a bar at the bottom of the window where you can click save. You then get a new copy of your wiki in the downloads folder.
  • Support for new tw-close-other-tiddlers message (eg, )
  • For http://five.tiddlywiki.com, add a tiddler info tab with a link to the static representation of the tiddler
  • Make more UI elements extensible via system tags:

Improvements

  • Rename the <$setvariable> to <$set>
    • <$setvariable> will temporarily remain as a synonym for <$set> for the next few releases
  • Improve the popup mechanism so that the tiddler info panel doesn't close so easily
  • Various improvements for working with TiddlyWeb, including:
    • Updated control panel

Bug fixes

  • Fixed bug when creating a tiddler title starting or ending with a space
  • Fixed behaviour of tags editor dropdown when search box is empty
  • Fixed problem with interpretation of fields and index attributes of the TranscludeWidget
  • Fixed the module type names in the internal tab of the control panel
  • Improved styling for embedded PDFs
  • Fixed bug with second being omitted from serialised date formats

Contributors to this release include @jermolene and @grayeul.

Release 5.0.0-alpha.16

30th November 2013 at 9:55am

See GitHub for detailed change history of this release

New Features and Improvements

  • Improved appearance of tags editor
  • Improved generation of qualified tiddler titles for state storage
    • Instead of $:/state/tab/sidebar-{$:/core/ui/SideBar|$:/core/ui/SideBar||}{$:/core/ui/PageTemplate|$:/core/ui/PageTemplate||} one gets $:/state/tab/sidebar-{1743827719}
  • Significant updates to the structure and content of the user documentation
  • Added a new plugin for displaying corner ribbons; currently used for a version banner on tw5.com
  • Split Snow White theme into a base Vanilla theme with all the basic formatting, leaving the decorative bits to Snow White
    • Existing TiddlyWikiFolders will need updating to include Vanilla as an additional theme
  • The page building blocks are now driven by the system tag $:/tags/PageTemplate
  • Fixed problem that prevented tag configured items from shadow tiddlers interleaving with items from ordinary tiddlers
  • Refactored control panel to add Saving tab that includes TiddlySpot options
  • Improved notifications when saving to TiddlySpot
  • Added backup URL to TiddlySpot control panel tab
  • Extended the ServerCommand to add primitive support for basic authentication when running under Node.js

Bug fixes

  • Fixed problem with displaying tiddler titles that contain WikiText syntax
  • No longer crashes when encountering an error in a filter string
  • Fixed a crash when dragging and dropping tiddlers within TiddlyWiki5
  • No longer update the modified date for imported tiddlers
  • Automatically forces new field names to be lower case

Internal changes

  • Added Windows-compatible build scripts
  • Changes to the SavingMechanism to allow the tiddlers that are saved to be selected
  • The main HTML file template used for saving TiddlyWiki5 documents has changed from $:/core/templates/tiddlywiki5.template.html to $:/core/save/all
  • Moved tw5.com's Google Analytics integration into a proper plugin

Contributors to this release include @jermolene, @asampal and @pmario.

Release 5.0.0-alpha.17

30th November 2013 at 3:16pm

See GitHub for detailed change history of this release

Bug fixes

  • Fixes a small but important bug that prevented downloading an empty wiki with alpha.16

Release 5.0.1-alpha

6th December 2013 at 4:13pm

See GitHub for detailed change history of this release

Improvements

  • Changes to the importing process to enable a smoother Upgrading process
    • Ignores attempts to import plugins that are older than currently installed plugins
    • System tiddlers are now imported as usual
  • If $:/theme isn't defined or refers to a missing tiddler, then fallback through Snow White to Vanilla. This means that empty.html now defaults to Snow White
  • Added support for Block Quotes in WikiText

Bug fixes

  • Fixed bug that was preventing $:/tags/PageControls tiddlers from being reordered

Internal changes

Release 5.0.10-beta

18th January 2015 at 6:24pm

See GitHub for detailed change history of this release

Highlights

Documentation Improvements

Usability Improvements

  • Refactor sorting to respect accented characters
  • Support embedded images in Markdown tiddlers
  • Refactored sidebar hiding action so that the story river border is maintained

Hackability Improvements

  • Added [is[tag]] to the is operator
  • Hide the top bars in the print stylesheet

Bug Fixes

  • Added support for saving changes on Windows network drives
  • Refactored configuration processing so that ordinary tiddlers are processed after shadow tiddlers. This resolves an issue whereby user stylesheets were being overridden by shadow stylesheets
  • Fixed issue with offline snapshot of server edition erroneously including shadow tiddlers
  • Fixed problem with corrupted upgrades from 5.0.x-prerelease to 5.0.x-beta
  • Fixed bug with [untagged[]] filter operator
  • Fixed incorrect background colour for tag pills in the sidebar
  • Fixed issues with null fields under TiddlyWeb
  • Fixed problem with hamburger overlapping scrollbars

Release 5.0.11-beta

21st February 2015 at 10:57pm

See GitHub for detailed change history of this release

Incompatible Changes

See Notes for upgrading to 5.0.11-beta for more details of these changes:

  • The default output location for command line operations has changed to the /output folder within TiddlyWikiFolders (it used to be current directory)
  • Note that the shadow tiddler $:/core/ui/PageMacros has changed with this release. If you've made modifications to it you should copy your modifications to a new tiddler, delete $:/core/ui/PageMacros, perform the upgrade and then manually update the new copy of $:/core/ui/PageMacros

Documentation Improvements

Usability Improvements

  • Many performance optimisations, particularly for filter operations
  • Added support for PermaLinks and browser back and forward buttons
  • Added support for WikiLinks in Markdown via [link text](#TiddlerTitle)
  • Added support for explicit external Linking in WikiText (eg [ext[tooltip|url]])
  • Replaced hamburger menu icon with double chevron icon
  • Enhance plain text parsing to use the CodeBlockWidget, and hence use syntax highlighting if the plugin is installed. This gives us syntax highlighting for JavaScript shadow tiddlers, amongst other things
  • Improvements to the German, French, Italian, Japanese and Chinese translations
  • Removed WikiText tiddlers from the sidebar "Types" tab
  • Added various warnings when editing shadow tiddlers
  • Allow digits in field names
  • Added warning banner and when attempting to edit binary tiddlers
  • Added automatic refreshing of the browser window title from $:/core/wiki/title

Hackability Improvements

Bug Fixes

  • Fixed issue with hovering of the topbar icons in Firefox
  • Fixed problem with dragging and dropping within a text edit control

Contributors

I (@Jermolene) would like to thank the contributors to this release who have generously given their time to helping improve TiddlyWiki:

@BramChen, @mwfogleman, @nameanyone, @natecain, @pekopeko1, @pmario, @sukima, @xcazin.

Release 5.0.12-beta

17th May 2014 at 2:02am

See GitHub for detailed change history of this release

This is an emergency release that fixes a single significant bug with shadow tiddler handling in 5.0.11. See the discussion thread for more details.

Release 5.0.13-beta

18th January 2015 at 6:25pm

See GitHub for detailed change history of this release

Accessibility Improvements

This release includes a number of features designed to improve the experience of TiddlyWiki with a screen reader. Particular thanks to @domasofan for his feedback

  • Added label and title for show/hide sidebar buttons
  • Added label and title for advanced search link
  • Added label and title for close buttons in "Open" sidebar tab
  • Added aria-label support to the LinkWidget
  • Switched to H1 tags for the page title and H2 tags for tiddler titles
  • Added label and title for tiddler and page toolbar buttons

Usability Improvements

Hackability Improvements

Bug Fixes

  • Fixed here and here the problem with state tiddlers being inadvertently saved
  • Fixed bug with TextWidget not refreshing correctly
  • Fixed problem with vertical tabs in Safari
  • Fixed issue with images in Markdown

Contributors

@Jermolene would like to thank the contributors to this release who have generously given their time to help improve TiddlyWiki:

Release 5.0.14-beta

21st February 2015 at 10:57pm

See GitHub for detailed change history of this release

Major Changes

Improved Control Panel Plugins Tab

The Plugins tab of the control panel has been improved with the addition of documentation tabs that plugins can use to show documentation. There is also a larger draggable area for dragging tiddlers across to other wikis.

Configurable Button Toolbars

The page toolbar and the tiddler toolbars can now be configured with several new buttons - see the control panel under the Appearance and Toolbars tabs.

The sidebar tools tab now shows all the available page controls, allowing them to be invoked or checked to appear in the toolbar. The tiddler info area now includes a tools tab that includes buttons for all the tiddler actions.

Upgrade Mechanism

There are two components:

Improvements to CamelCase Recognition

TiddlyWiki now takes a much more conservative approach to recognising CamelCase terms that should be automatically linked. Previously, the dash and underscore were treated as lower case letters, leading to a number of false positives. See the GitHub bug #337 for details.

Automatic Permalinking Off by Default

With previous beta releases of TiddlyWiki the browser address bar is automatically updated so that it dynamically reflects the tiddlers that are currently open. This makes it easier to get a permalink for copying and pasting elsewhere, but it leads to much confusion for casual users who don't always understand why unexpected tiddlers are being displayed after they have refreshed the page in the browser.

For 5.0.14-beta, the setting has been changed. Visit control panel Advanced/Settings to switch the setting back to "Include the target tiddler and the current story sequence".

Usability Improvements

  • Added previews to the icon dropdown in the tag manager
  • Added an indication of unsaved changes by changing the colour of the save changes button
  • Split the wikitext emphasis parsers into separate modules so that they can be independently controlled with the \rules pragma
  • Refactored (and here) ReleaseHistory to place the releases into vertical tabs
  • Stopped saving $:/HistoryList, thus avoiding it uncontrollably increasing in size
  • Improved (and here) print stylesheet to remove page background
  • Updated display of plugin tiddlers so that their constituent tiddlers are shown, rather than the raw JSON
  • Moved the functionality of the fullscreen plugin into the core

Hackability Improvements

  • Extended TiddlerWidget to add a CSS class corresponding to each tag present on displayed tiddlers
  • Added support for hiding specified fields in the tiddler editor
  • Added support for variable operands in filters (see Filter Parameter)
  • Added support for widget messages tw-permalink and tw-permaview
  • Added browser sniffing plugin so that tiddlywiki.com can present the correct browser-specific documentation
  • Added a configuration option for specifying the default location for saving new tiddlers in the client-server configuration
  • Added support for the InfoMechanism
  • Extended CheckboxWidget to allow it to toggle fields as well as tags
  • Refactored control panel theme tweaks to be stored in individual tiddlers
  • Extend the tabs macro to allow tabs to be templated
  • Added (and here) SystemTags support for inserting content above and below the story river
  • Added support for transcluding plugin subtiddlers with the TranscludeWidget
  • Added (and here) support for importing from *.htm and *.hta files as well as the existing support for *.html files
  • Extended the "sticky titles" theme so that it works when tiddlers are in edit mode

Bug Fixes

  • Fixed bug with execution order of BuildCommand targets
  • Fixed bug with missing hover colours for external links
  • Fixed problem with refreshing modal dialogues
  • Fixed issue with cookies disabled on Firefox
  • Relax the requirement for a newline immediately the closing \end of a macro definition

Contributors

@Jermolene would like to thank the contributors to this release who have generously given their time to help improve TiddlyWiki:

Release 5.0.15-beta

21st February 2015 at 7:40pm

See GitHub for detailed change history of this release

Usability Improvements

Hackability Improvements

Bug Fixes

  • Fixed problem with building TiddlyWiki under Windows
  • Fixed unclickable download ink in upgrade wizard
  • Fixed missing language flag in empty.html
  • Fixed problem with switching the type of a tiddler between the bitmap and text editor
  • Fixed foreground colour for tag pills in the sidebar
  • Fixed problem with github source links for tiddlywiki.com not working for titles containing colons

Contributors

@Jermolene would like to thank the contributors to this release who have generously given their time to help improve TiddlyWiki:

Release 5.0.16-beta

21st February 2015 at 7:41pm

See GitHub for detailed change history of this release

Incompatible Changes

5.0.16-beta brings more incompatible changes than any previous release. These changes are likely to break almost all plugins written for previous releases of TiddlyWiki 5, and will break many customisations.

  • Changed all CSS class prefixes from tw- to tc- (eg tw-tiddler-frame has become tc-tiddler-frame; missing prefixes have also been added, so btn-invisible has become tc-btn-invisible)
  • Changed all message prefixes from tw- to tm- (eg tw-close-tiddler has become tm-close-tiddler)
  • Changed all variable prefixes from tw- to tv- (eg tw-config-toolbar-icons has become tv-config-toolbar-icons)
  • Changed prefix/removeprefix filter operators to be case-sensitive

Compatibility with TiddlyWikiClassic

This release includes a preliminary version of a new plugin that provides compatibility with content created for TiddlyWikiClassic:

http://tiddlywiki.com/classicparserdemo.html

Subsequent releases will include end-user documentation with step-by-step instructions for migrating content.

Many thanks to @buggyj for his work on this plugin.

Usability Improvements

Hackability Improvements

Bug Fixes

Contributors

@Jermolene would like to thank the contributors to this release who have generously given their time to help improve TiddlyWiki:

Release 5.0.17-beta

21st February 2015 at 10:52pm

See GitHub for detailed change history of this release

Highlights

This release includes major improvements from @giffmex to the welcome and tutorial documentation, and new development docs incorporating the work of @cheigele and @cjrk.

Incompatible Changes

Change System Tag $:/tags/stylesheet with $:/tags/Stylesheet

The issue is that the capitalisation of $:/tags/stylesheet is not consistent with other system tags. This release adds support for $:/tags/Stylesheet, and adds a deprecation warning if $:/tags/stylesheet is used. Support for $:/tags/stylesheet will be removed before the beta.

  • Added support for $:/tags/Stylesheet and a deprecation warning when $:/tags/stylesheet is used

Change ButtonWidget title attribute to tooltip

The use of the title attribute in the ButtonWidget was not consistent with the tooltip attribute used by the ImageWidget and LinkWidget. This release adds support for the tooltip attribute to the ButtonWidget alongside the existing support for the title attribute, but with a deprecation warning.

Removing Support for RegExp Filter Operands

As discussed in the associated ticket, the support for regular expression filter operands is incomplete and inconsistent. The plan is to remove support for this feature in the next release. A new filter operator has been provided to replace it, along with the addition of a deprecation warning that is displayed whenever regular expression filter operators are used.

  • Added new regexp operator
  • Added deprecation warning for regular expression filter operators

Repository Reorganisation

The goal is to make the TiddlyWiki repository easier to comprehend for newcomers.

  • Moved scripts into a separate bin folder

Usability Improvements

Hackability Improvements

Bug Fixes

  • Fixed problem with draft tiddlers not counting as dirty
  • Fixed problem with keyboard shortcuts introduced in 5.0.16-beta
  • Fixed problem with stylesheets being parsed in inline mode
  • Fixed bug with selective expandable Table-of-Contents Macros

Contributors

@Jermolene would like to thank the contributors to this release who have generously given their time to help improve TiddlyWiki:

Release 5.0.18-beta

21st February 2015 at 11:01pm

See GitHub for detailed change history of this release

This is a minor release prior to the full release of TiddlyWiki on September 20th. The documentation has been cleaned up and improved (with more improvements to come).

File Layout of tiddlywiki.com

The layout of files on tiddlywiki.com has been adjusted to make it more logical. See the ticket for a discussion. You can see the source files that make up tiddlywiki.com at https://github.com/Jermolene/jermolene.github.com

Hackability Improvements

  • Added first iteration of a list-links macro (further improvements are planned)
  • Added support for importing .markdown and .md files
  • Extended timeline macro to support a subfilter

Bug Fixes

  • Fixed problem with digits being classified as lower case letters for wiki link matching
  • Fixed crash when sorting missing tiddlers by fields other than title
  • Fixed problem with handling .jpeg file extensions
  • Fixed problem with RadioWidget and missing tiddlers
  • Fixed problem with dragging a partially selected link

Contributors

@Jermolene would like to thank the contributors to this release who have generously given their time to help improve TiddlyWiki:

Release 5.0.2-beta

15th December 2013 at 2:24pm

See GitHub for detailed change history of this release

Improvements

Bug fixes

  • Fixed problem deleting tiddlers under the filesystemadaptor
  • Fixed problem with transcluding fields containing lists or dates (eg, {{!!tags}})
  • Fixed problem with re-ordering page control tiddlers (ie tiddlers tagged $:/tags/PageControls)
  • Update template used for deploying to TiddlyWeb
  • Fixed problem with tiddler deletions via the file system adaptor

Internal changes

Release 5.0.3-beta

15th December 2013 at 5:00pm

See GitHub for detailed change history of this release

This release includes minor bug fixes and documentation updates.

Release 5.0.4-beta

21st December 2013 at 8:55pm

See GitHub for detailed change history of this release

Improvements

  • Switched to using an HTML5 placeholder for the default text of a new tiddler
  • Refactored stylesheet handling so that theme tweaks are now applied immediately, and some ordering issues have been resolved
  • Several improvements for running TiddlyWiki on Node.js:
    • The tiddlywiki.info file in the root of wiki folder file is now optional, falling back to a default configuration suitable for serverside use (commit)
    • The file system plugin now automatically creates the tiddlers subfolder in the wiki folder
  • Added favicon.ico support
  • Added SaveTiddlerCommand

Bug Fixes

  • Fixed problem with tiddlers sometimes wrongly opening at the top of the story (commit)
  • Fixed problem with refreshing RadioWidget
  • Fixed problem with the dragger image being visible in some circumstances
  • Fixed drag and drop support on InternetExplorer, contributed by DavidJade (@davidjade on GitHub)
  • Fixed crash on modifying page template (commit)
  • Updated fullscreen plugin to latest version of the API (commit)
  • Improved handling of double square brackets within tags (thanks to StephanHradek)

This release includes minor bug fixes and documentation updates.

Release 5.0.5-beta

24th December 2013 at 2:20pm

See GitHub for detailed change history of this release

Improvements

Bug Fixes

  • Fixed problem with modal wizard positioning on narrow screens
  • Fix problem with static content being included in empty.html when downloaded from the full wiki
  • Improved performance of tiddler import with large tiddlers on Firefox

Release 5.0.6-beta

3rd January 2014 at 4:49pm

See GitHub for detailed change history of this release

Improvements

Bug Fixes

  • Fixed import browse button
  • Fixed crash when attempting full screen mode on browsers that don't support it
  • Fixed requirement for a newline immediately after a horizontal rule, table or typed block (thanks to StephanHradek)
  • Fixed problem with placeholder attibute on InternetExplorer (thanks to DavidJade)

Release 5.0.7-beta

25th January 2014 at 7:10pm

See GitHub for detailed change history of this release

Incompatible Changes

These are changes that might affect users upgrading from previous betas.

Documentation updates

Improvements

Bug Fixes

  • Fixed problem with default format of ViewWidget substituting seconds for minutes in displayed times
  • Fixed problem that was causing several animations to fail in Safari
  • Fixed problem with unclickable sidebar under the Centralised theme
  • Fixed problem with non-system tiddlers showing up in system tiddler advanced search
  • Fixed problem with notifications not always disappearing in Firefox
  • Fixed problem with wiki folders including wiki files with tiddlers that do not have a title
  • Fixed problem with ServerCommand logging "Serving on undefined:8080"

Release 5.0.8-beta

28th February 2014 at 3:49pm

See GitHub for detailed change history of this release

Incompatible Changes

See Notes for upgrading to 5.0.8-beta for more details of these changes:

Documentation Improvements

Usability Improvements

  • Added automatic saving on editing a tiddler and a warning when attempting to close the window with unsaved changes
  • Added confirmation dialogue when deleting tiddlers
  • Add support for switchable (and editable) ColourPalettes
  • Added TranslationMechanism and translations for:
    • Deutsch (Österreich and Deutschland) by @pmario
    • Français (France) by @xcazin
    • Chinese (Simplified and Traditional) by @BramChen
  • Add error alerts when syncing to a server
  • Rejigged $:/ControlPanel to use nested tabs
  • Added $:/TagManager for easy management of tags
  • Added experimental KeyboardWidget, including support for ctrl-enter (or cmd-enter) to finish editing a tiddler
  • Added number of tags to control panel Basics tab
  • Enhanced link handling so that control/command clicking a link opens the target tiddler without navigating to it
  • Importing tiddlers via drag and drop no longer opens all the tiddlers

Scalability Improvements

Hackability Improvements

Bug Fixes

  • Fixed problem with pasting items into the browser
  • Fixed problem with colour pickers not showing correct colour in Chrome
  • Fixed problem with tag pills not working inside table cells
  • Fixed problem in client server configuration with % in tiddler titles
  • Fixed problem with not using placeholder text when editing missing tiddlers
  • Fixed problem with test data in certain time zones
  • Fixed problem with non-breaking space characters being converted into '@' symbols
  • Fixed problem with highlighting plugin only working in the browser
  • Fixed crash when wiki/themes folder contains files that are not themes

Release 5.0.9-beta

2nd March 2014 at 6:09pm

See GitHub for detailed change history of this release

Highlights

Documentation Improvements

Usability Improvements

  • Made the dropdown arrow icon skinnier
  • Added validation of legal characters for fieldnames
  • Added blacklisting of unsafe HTML elements and attributes
  • Added a warning indicator to tiddlers in TiddlyWikiClassic format
  • Add tiddler info Advanced panel with information about plugins and shadow tiddlers
  • Improved layout of $:/ControlPanel Plugins tab
  • Enhance viewing of system tiddlers by fading down the $:/ prefix
  • Extend $:/TagManager to allow icons to be assigned to tags
  • Added support for list-before and list-after fields for controlling tag ordering (see TiddlerTags for details)
  • Added request for confirmation before abandoning edits to a tiddler

Hackability Improvements

Bug Fixes

  • Fixed problem with occasional freezes of the sync mechanism - thanks to buggyj
  • Fixed problem with tiddlers or fields called __proto__
  • Fixed with refreshing the D3 plugin
  • Fixed problem with "null" message when unloading under Internet Explorer 11

Release 5.1.0

20th September 2014 at 1:40pm

See GitHub for detailed change history of this release

This is the first full release of TiddlyWiki. Documentation updates made up the bulk of the changes since the previous 5.0.18-beta release.

Hackability Improvements

  • Removed curly braces from qualified identifiers

Bug Fixes

  • Fixed problem with Markdown Maruku mode metadata

Contributors

@Jermolene would like to thank the contributors to this release who have generously given their time to help improve TiddlyWiki:

Release 5.1.1

21st September 2014 at 1:40pm

See GitHub for detailed change history of this release

This is a minor bug fix release to improve the documentation and correct some issues with the first full release of TiddlyWiki.

Incompatible Changes

Certain features that were deprecated in Release 5.0.17-beta have now been removed:

Note that the next release will also remove support for regular expression filter operands, which was also deprecated in 5.0.17-beta.

Hackability Improvements

Contributors

@Jermolene would like to thank the contributors to this release who have generously given their time to help improve TiddlyWiki:

Release 5.1.10

7th January 2016 at 11:16pm

See GitHub for detailed change history of this release

Major Improvements

Performance Optimisations

This release includes several low-level performance optimisations that should improve speed and responsiveness in many common operations.

There is a new setting in the control panel to enable performance instrumentation, making it much easier to measure and improve performance issues.

New Editions

Three new editions of TiddlyWiki are included in this release. These can be used as starting points for creating your own wiki for several purposes:

  • The Résumé Builder Edition by @inmysocks is a custom edition to guide you through the process of using TiddlyWiki to create a good looking résumé (or curriculum vitæ)
  • The Blog Edition provides tools for using TiddlyWiki under Node.js to create a static HTML blog that can be published on GitHub pages (or similar)
  • The Text-Slicer Edition is a custom edition with tools to help advanced users slice longer texts up into individual tiddlers.

External Text Tiddlers

Limited support for tiddlers stored in external .tid files:

  • standalone TiddlyWiki HTML files with external text tiddlers can be built under Node.js
  • wikis with external text tiddlers can be worked with in the browser, automatically lazily loading the content of external text tiddlers when it is first referenced
    • saving changes in the browser doesn't work as expected: if edited, the external text tiddler is replaced with an ordinary tiddler
    • lazy loading of external text tiddlers doesn't work in Chrome when viewing the TiddlyWiki HTML file on a file: URI; it works OK in Firefox
    • lazy loading works on an HTTP URI on all browsers as long as the target file is either stored on the same domain or is served by a server that supports CORS

See Alice in Wonderland for an example. Try opening it without a network connection.

New "Tight" Theme

A new theme called "Tight" uses reduced padding, margins and font-sizes to pack as much text as possible:

Other Improvements

Translation Improvements

  • Added Swedish translation by @Superdos
  • Added Korean (Korean Republic) translation by @araname
  • Improved Catalan, Chinese, Danish, Dutch, French, German, Italian, Russian and Spanish translations

Usability Improvements

  • Enhanced the tiddler editor to accept new fields and tags when clicking confirm, without having to click "Add tag" or "Add field"
  • Added new fold and fold others buttons to the tiddler toolbar to temporarily hide the body of a tiddler, and also added new fold all and unfold all page buttons
  • Added ability to disable individual WikiText parser rules (see the Advanced tab of $:/ControlPanel). Also added a simple setting for disabling automatic linking of CamelCase words
  • Extended support for automatically linked system tiddler titles to include digits and underscore
  • Added warning when trying to use plugins designed for TiddlyWiki Classic
  • Upgraded to version v8.8.0 of highlight.js for the Highlight Plugin
  • Removed the need to manually confirm deleting alerts
  • Added optional tooltips to tabs Macro

Hackability Improvements

Bug Fixes

  • Fixed problem introduced in 5.1.9 with processing tiddlywiki.info files
  • Fixed problem with invisible icons in $:/AdvancedSearch
  • Improved check for required plugins in ServerCommand
  • Fixed problem with queueing change events for deleting non-existent tiddlers
  • Ensure EditTextWidget fixes height even if refresh isn't required
  • Fixed the gradient on the sidebar tabs divider
  • Fixed problem with tiddler titles such as $:/templates/something being erroneously classed as $:/temp tiddlers, and so excluded from syncing
  • Switched to absolute date format in tiddler subtitles

Node.js Improvements

  • Fixed problem with the filesystem adaptor saving new image files as base64-encoded .tid files instead of as native binary files with an accompanying .meta file
  • Extended tiddlywiki.files support in TiddlyWikiFolders to allow directories to be loaded recursively, as well as individual files

Contributors

@Jermolene would like to thank the contributors to this release who have generously given their time to help improve TiddlyWiki:

Release 5.1.11

30th January 2016 at 12:41pm

See GitHub for detailed change history of this release

This is a bug-fix release for Release 5.1.10 that fixes a serious issue affecting the operation of the official plugin library.

Release 5.1.12

13th July 2016 at 11:47am

See GitHub for detailed change history of this release

Major Improvements

New Editor Toolbars

Added support for extensible formatting toolbars for the editor widgets.

  • Formatting operations for WikiText, with support for Markdown:
    • Character formatting operations for bold, italic, strikethrough, underline, superscript, subscript, inline monospace
    • Line formatting operations for monospaced blocks, quoting, headings and both numbered and bulleted lists
    • Insert picture from a dropdown chooser
    • Stamp snippet of pre-programmed text
    • Excise selected text into a new tiddler
    • Optional automatic resizing to fit content
  • Full keyboard shortcut editor in control panel. Shortcuts are also shown in the toolbar button tooltips

Improved Bitmap Editor

The bitmap editor has been enhanced with a toolbar supporting:

  • Painting with selectable colour, width and opacity
  • Clearing the image
  • Resizing the image
  • Keeping track of recently chosen colours

Improved Plugins

Several of the official plugins available in the plugin library have been updated for this release. Upgrading will automatically update any installed plugins.

  • The KaTeX plugin has been updated to version v0.60.0
  • The CodeMirror plugin has been updated to version 5.13.2, and integrated with the new editor toolbars. The default configuration has been updated to include syntax highlighting for HTML, JavaScript, CSS, XML, TiddlyWiki Classic and Markdown.
  • The Markdown plugin includes formatting toolbar buttons and a new "new markdown tiddler" button in the Tools tab of the sidebar.
  • The experimental Evernote plugin allows notes and images from .enex files to be imported into TiddlyWiki.
  • The new Internals plugin provides features to help understand the internal operation of TiddlyWiki, including new preview modes in the editor showing both the parse and widget trees of the current tiddler
  • Improved language translations:
    • Korean
    • Chinese (Simplified) and Chinese (Traditional)
    • German
    • French
    • Danish
    • Dutch

Text-Slicer Plugin Improvements

  • Added support for sticky notes within documents
  • Extended support for slicing documents to Node.js
  • Improved document metadata display
  • Added list-children filter operator
  • Fixed bugs

Other Improvements

Usability Improvements

  • Added a setting for disabling linking to missing tiddlers
  • Added a setting for forcing word wrapping in monospaced code blocks
  • Added a warning when creating or editing tiddler titles containing troublesome characters
  • Addition of “new image” button to the “Tools” tab of the sidebar
  • Introduction of new general purpose colour-picker Macro
  • Introduction of new general purpose image-picker Macro
  • Added a bulk delete button to advanced search "Filter" tab

Hackability Improvements

Bug Fixes

Node.js Improvements

Contributors

@Jermolene would like to thank the contributors to this release who have generously given their time to help improve TiddlyWiki:

Release 5.1.2

27th September 2014 at 5:24pm

See GitHub for detailed change history of this release

This is another small release with documentation updates and a few bug fixes and improvements.

Usability Improvements

Hackability Improvements

  • Improved styling of separator before the untagged item in the tags sidebar
  • Improved error handling for the upload saver (which is used for saving to TiddlySpot)
  • Improved storyview error detection

Bug Fixes

  • Fixed crash caused by incorrectly formatted plugins
  • Fixed problem with tiddler info not being removed by the syncer after deleting a tiddler
  • Fixed HTTP handling to treat response code 201 as success

Contributors

@Jermolene would like to thank the contributors to this release who have generously given their time to help improve TiddlyWiki:

Release 5.1.3

21st February 2015 at 11:01pm

See GitHub for detailed change history of this release

Usability Improvements

Hackability Improvements

Bug Fixes

  • Fixed the each operator to work with missing tiddlers
  • Fixed problem with tiddler width in zoomin storyview with the sidebar hidden
  • Fixed bug whereby the tm-home message wasn't navigating to a tiddler, causing problems in zoomin storyview
  • Fixed problem with jumping toolbar icons under Firefox
  • Fixed problem with untagged label being incorrectly coloured
  • Fixed problem with title background colours with the "Sticky Titles" theme
  • Fixed problem with subfilter parameter of timeline macro
  • Exclude search string tiddler from search results

Node.js Changes

These changes are only relevant to people using TiddlyWiki under Node.js

Contributors

@Jermolene would like to thank the contributors to this release who have generously given their time to help improve TiddlyWiki:

Release 5.1.4

22nd October 2014 at 4:55pm

See GitHub for detailed change history of this release

This is a small release with documentation improvements and some important bug fixes from Release 5.1.3.

Usability Improvements

  • Added a toolbar button for advanced search
  • Changed dragging behaviour so that you can drag a tiddler title into an edit box to insert the title, making link creation easier. (This change doesn't affect the behaviour of dragging tiddler links between TiddlyWiki windows)

Hackability Improvements

  • Added additional theme tweaks for the body text size and line height
  • Extended the ViewWidget to work with subtiddlers

Bug Fixes

  • Fixed problem with search counts

Node.js Changes

These changes are only relevant to people using TiddlyWiki under Node.js

Contributors

@Jermolene would like to thank the contributors to this release who have generously given their time to help improve TiddlyWiki:

Release 5.1.5

21st February 2015 at 10:50pm

See GitHub for detailed change history of this release

Translation Improvements

  • Added new translators edition making it much easier to create and maintain translations of TiddlyWiki
  • Added improved Japanese translation
  • Added new Danish translation
  • Added new Greek translation

Usability Improvements

  • Improvements to tooltips for accessibility
  • Added export button to tiddler toolbar, page controls and advanced search "filter" tab
  • Improved layout of $:/TagManager
  • Simplified default tiddler toolbar buttons
  • Added advanced search button to sidebar search results
  • Improved search results by listing title matches at the top
  • Added input box for specifying new field value in edit template
  • Improved tag pill rendering so that the foreground colour is dynamically chosen for maximum contrast with the background colour
  • Enhancements to many of the core icons
  • Removed (and here, here and here) unnecessary confirmations when abandoning or deleting unmodified tiddlers
  • Added a subtle rounded corner to tiddlers and tabs
  • Added automatic focusing of the title of newly created tiddlers
  • Added advanced search links on tiddler counts in $:/ControlPanel

Hackability Improvements

Bug Fixes

Node.js Changes

These changes are only relevant to people using TiddlyWiki under Node.js

Changes affecting plugin authors

  • Disabled wiki change events for shadow tiddlers
  • Updated structure of widget messages that have a hashmap parameter
  • The support for nested popups has necessitated a change in the way that popups are styled that affects popups that are triggered with the focusPopup attribute of the EditTextWidget: it is now necessary for the widget to be given the class tc-popup-handle.

Contributors

@Jermolene would like to thank the contributors to this release who have generously given their time to help improve TiddlyWiki:

Release 5.1.6

21st February 2015 at 7:42pm

See GitHub for detailed change history of this release

Translation Improvements

  • Added Dutch translation
  • Updated Danish and Japanese translations

Hackability Improvements

Bug Fixes

  • Fixed problem with download saver using incorrect filename
  • Fixed problem with processing of date format templates
  • Fixed problem with storytop theme tweak not being respected when the narrow responsive design kicks in

Node.js Changes

These changes are only relevant to people using TiddlyWiki under Node.js

  • Fixed problem with "all tiddlers" static HTML export
  • Fixed incorrect checking for an empty folder with the InitCommand

Changes affecting plugin authors

  • Extended $tw.utils.each so that the loop can be broken out of

Contributors

@Jermolene would like to thank the contributors to this release who have generously given their time to help improve TiddlyWiki:

Release 5.1.7

19th December 2014 at 9:50pm

See GitHub for detailed change history of this release

This is an hot fix release with the following change over Release 5.1.6:

Release 5.1.8

17th April 2015 at 5:33pm

See GitHub for detailed change history of this release

This release includes many improvements to the documentation for TiddlyWiki. Many thanks to everyone who has helped out, but especially to our prodigious new contributor Astrid Elocson.

Translation Improvements

  • Improvements to French, Danish, Chinese and Japanese translations
  • Added Czech translation
  • Added Interlingua translation
  • Added Portuguese translation
  • Added Punjabi and Hindu translations
  • Added Slovak translation
  • Added Spanish translation
  • Added localisation for encryption prompt

Usability Improvements

Hackability Improvements

Bug Fixes

  • Fixed the sameday Operator and eachday Operator to accept TW5 date strings
  • Fixed version number compatibility checks for plugins
  • Fixed problem with repeatedly cancelling a draft
  • Improved sandboxing of generated <iframe> elements
  • Fixed problem with modal backgrounds on Firefox
  • Fixed problem with accidentally dragging a tiddler within its originating window
  • Fixed problem with dragging certain plugins with Safari
  • Partially fixed problem with SVG icons being clipped by 1 pixel on the right and bottom
  • Fixed problem with double quotes in a new field value

Node.js Changes

These changes are only relevant to people using TiddlyWiki under Node.js

Contributors

@Jermolene would like to thank the contributors to this release who have generously given their time to help improve TiddlyWiki:

Release 5.1.9

3rd July 2015 at 4:37pm

See GitHub for detailed change history of this release

Major Improvements

New "Powered by TiddlyWiki" plugin

An experimental plugin to add a simple "Powered by TiddlyWiki" banner to your site. It is included in this prerelease but will not be on the main tiddlywiki.com wiki.

New "Fluid story, fixed sidebar" mode

It is now possible to arrange the main window so that the sidebar has a fixed width and the story river expands to fill the remaining space.

To switch it on, visit Theme Tweaks in the $:/ControlPanel Appearance tab and use the following options:

  • Sidebar layout:
    • Fixed story, fluid sidebar (default) - the story river has a fixed width and the sidebar fills the remaining space
    • Fluid story, fixed sidebar - the story river expands to fill horizontal space remaining after the fixed width sidebar
  • Sidebar width:
    • The width of the sidebar. Can be specified in pixels (eg 350px), a percentage (eg 25%) or other CSS unit

Toolbar Button Style Setting

A new setting in $:/ControlPanel Settings tab allows the toolbar button style to be chosen from the following options:

  • the existing style
  • , which adds a thin border box around the button
  • , which rounds the button corners and inverts the button colours

Plugins can add new style options.

New Tiddler Toolbar Button: "Open in new window"

An experimental new tiddler toolbar button opens a single tiddler in a separate pop-up browser window. The tiddler will be dynamically updated just as in the main window. There are several uses:

  • Arranging reference tiddlers for easy access while editing in the main window
  • Making good use of multi-screen layouts
  • Printing the content of a single tiddler
  • Running presentations in a separate window while maintaining notes in the main window

Improvements for visually impaired users

New "Solar Flare" palette

There's a new core palette "Solar Flare", contributed by Rustem Akbulatov (@nameanyone).

Options for Story Control

There are new options for controlling the position in the story river of newly opened tiddlers. Visit the Settings tab of $:/ControlPanel and look for "Tiddler Opening Behaviour".

New Hidden Settings

Two new hidden settings for advanced configuration:

New Vars widget

Added VarsWidget for setting multiple variables in one operation:

<$vars greeting="Hi" me={{!!title}} sentence=<<helloworld>>>
  <<greeting>>! I am <<me>> and I say: <<sentence>>
</$vars>

Other Improvements

Translation Improvements

  • Updates to the Dutch, Chinese, Italian and German translations
  • New Catalan (Spain) translation

Usability Improvements

  • Added new page control icon for setting the palette:
  • Added new icons for palette and "open new window"
  • Improved the theme icon to better match the new palette icon:
  • Avoid glitch with autofocusing the search box in the plugin library
  • Added information about TiddlyDesktop to Releases
  • Stopped autosaving after cancelling an edit
  • Added dropdown to edit template to allow existing field names to be selected

Hackability Improvements

  • Updated to KaTeX version 0.4.3, with the following editions since the previous 0.2.0 release that was distributed with TiddlyWiki 5.1.8:
    • Added support for some \begin/\end environments, including support for array, matrix, pmatrix, bmatrix, vmatrix, and Vmatrix
    • Added support for optional \sqrt arguments, e.g. \sqrt[3]{x}
    • Add support for \phantom
    • Add \#, \&
    • See the KaTeX GitHub page for full release details
  • Extended ActionSendMessageWidget for more flexible passing of named parameters via new $name and $value attributes
  • Added styling for <kbd> elements such as escape and enter
  • Added subtle new "pin stripe" pattern for page background -
  • Added support for custom elements to the ButtonWidget
  • Improved CodeMirror plugin to automatically refresh when a tiddler type changes
  • Added new setting in $:/ControlPanel to render tiddler titles as links, which can be convenient for drag and drop
  • Simplified detecting the preview pane with the tv-tiddler-preview Variable
  • Improved automatic linking of system tiddler titles by restricting them to letters and the characters /.-

Bug Fixes

  • Fixed problem with special characters in field names
  • Fixed static banner layout on mobile devices
  • Fixed popups within the scrollable widget by adding position: relative; to example scrollable widget styles

Contributors

@Jermolene would like to thank the contributors to this release who have generously given their time to help improve TiddlyWiki:

Releases

20th April 2015 at 12:45pm

Here are the details of recent releases of TiddlyWiki5. See TiddlyWiki5 Versioning for details of how releases are named.

(BetaReleases and AlphaReleases are listed separately).

Release 5.1.12

Released 13th July 2016 at 11:47

See GitHub for detailed change history of this release

Major Improvements

New Editor Toolbars

Added support for extensible formatting toolbars for the editor widgets.

  • Formatting operations for WikiText, with support for Markdown:
    • Character formatting operations for bold, italic, strikethrough, underline, superscript, subscript, inline monospace
    • Line formatting operations for monospaced blocks, quoting, headings and both numbered and bulleted lists
    • Insert picture from a dropdown chooser
    • Stamp snippet of pre-programmed text
    • Excise selected text into a new tiddler
    • Optional automatic resizing to fit content
  • Full keyboard shortcut editor in control panel. Shortcuts are also shown in the toolbar button tooltips

Improved Bitmap Editor

The bitmap editor has been enhanced with a toolbar supporting:

  • Painting with selectable colour, width and opacity
  • Clearing the image
  • Resizing the image
  • Keeping track of recently chosen colours

Improved Plugins

Several of the official plugins available in the plugin library have been updated for this release. Upgrading will automatically update any installed plugins.

  • The KaTeX plugin has been updated to version v0.60.0
  • The CodeMirror plugin has been updated to version 5.13.2, and integrated with the new editor toolbars. The default configuration has been updated to include syntax highlighting for HTML, JavaScript, CSS, XML, TiddlyWiki Classic and Markdown.
  • The Markdown plugin includes formatting toolbar buttons and a new "new markdown tiddler" button in the Tools tab of the sidebar.
  • The experimental Evernote plugin allows notes and images from .enex files to be imported into TiddlyWiki.
  • The new Internals plugin provides features to help understand the internal operation of TiddlyWiki, including new preview modes in the editor showing both the parse and widget trees of the current tiddler
  • Improved language translations:
    • Korean
    • Chinese (Simplified) and Chinese (Traditional)
    • German
    • French
    • Danish
    • Dutch

Text-Slicer Plugin Improvements

  • Added support for sticky notes within documents
  • Extended support for slicing documents to Node.js
  • Improved document metadata display
  • Added list-children filter operator
  • Fixed bugs

Other Improvements

Usability Improvements

  • Added a setting for disabling linking to missing tiddlers
  • Added a setting for forcing word wrapping in monospaced code blocks
  • Added a warning when creating or editing tiddler titles containing troublesome characters
  • Addition of “new image” button to the “Tools” tab of the sidebar
  • Introduction of new general purpose colour-picker Macro
  • Introduction of new general purpose image-picker Macro
  • Added a bulk delete button to advanced search "Filter" tab

Hackability Improvements

Bug Fixes

Node.js Improvements

Contributors

@Jermolene would like to thank the contributors to this release who have generously given their time to help improve TiddlyWiki:

ReleaseTemplate

ReleaseTemplate

Released TBA

Recursive transclusion error in transclude widget

remove Operator

8th November 2015 at 5:20am
purposeremove a range of items in an array from the current list
inputa list of items
suffixan integer N, defaulting to all
parameterarray = an array of items to remove
outputitems removed from current list that appear at the head of the operand array
! outputitems removed from current list that appear at the tail of the operand array

remove Operator (Examples)

8th November 2015 at 5:20am

These examples make use of the Days of the Week tiddler.

[list[Days of the Week]] +[remove[Tuesday Wednesday Thursday]]

[list[Days of the Week]] +[remove:3[Monday Wednesday Friday Saturday]]

[list[Days of the Week]] +[!remove:2{Days of the Week!!list}]

removeprefix Operator

3rd February 2015 at 7:07pm
purposefilter the input titles by how they start, deleting that prefix
inputa selection of titles
parameterS = a string of characters
outputthose input titles that start with S, but with those characters discarded

In looking for matches for S, capital and lowercase letters are treated as different.

Examples

removeprefix Operator (Examples)

23rd January 2015 at 9:04pm

[[My Cat]] [[Your Garden]] [[My Favourite Armchair]] +[removeprefix[My ]]

removesuffix Operator

3rd February 2015 at 7:07pm
purposefilter the input titles by how they end, deleting that suffix
inputa selection of titles
parameterS = a string of characters
outputthose input titles that end with S, but with those characters discarded

In looking for matches for S, capital and lowercase letters are treated as different.

Examples

removesuffix Operator (Examples)

23rd January 2015 at 9:10pm

SIMPLEX Googolplex Complex +[removesuffix[plex]]

RenderTiddlerCommand

Render an individual tiddler as a specified ContentType, defaulting to text/html and save it to the specified filename. Optionally a template can be specified, in which case the template tiddler is rendered with the "currentTiddler" variable set to the tiddler that is being rendered (the first parameter value).

--rendertiddler <title> <filename> [<type>] [<template>]

By default, the filename is resolved relative to the output subdirectory of the edition directory. The --output command can be used to direct output to a different directory.

Any missing directories in the path to the filename are automatically created.

RenderTiddlersCommand

Render a set of tiddlers matching a filter to separate files of a specified ContentType (defaults to text/html) and extension (defaults to .html).

--rendertiddlers <filter> <template> <pathname> [<type>] [<extension>] ["noclean"]

For example:

--rendertiddlers [!is[system]] $:/core/templates/static.tiddler.html ./static text/plain

By default, the pathname is resolved relative to the output subdirectory of the edition directory. The --output command can be used to direct output to a different directory.

Any files in the target directory are deleted unless the noclean flag is specified. The target directory is recursively created if it is missing.

replace Operator

8th November 2015 at 5:21am
purposereplace marker with N trailing items
inputa list of items
suffixan integer N, defaulting to 1
parametermarker = the item to be used as a marker
outputre-ordered list of items

replace Operator (Examples)

8th November 2015 at 5:21am

These examples make use of the Days of the Week tiddler.

[list[Days of the Week]] Last +[replace[Wednesday]]

[list[Days of the Week]] Last +[replace:2[Tuesday]]

[list[Days of the Week]] [[Yesterday]] [[Today]] [[Tomorrow]] +[replace:3[Tuesday]]

ReportingBugs

10th September 2014 at 10:25pm

You can report bugs or problems with TiddlyWiki via our discussion groups. If you have a GitHub account then you can raise an issue there:

https://github.com/Jermolene/TiddlyWiki5/issues/new

Unless you are already familiar with GitHub, it's usually easiest to report problems through the discussion groups.

TiddlyWiki on GitHub

We use GitHub Issues to manage bug reports and feature requests for TiddlyWiki. To maintain their effectiveness we endeavour to have as few open issues as possible.

Policies for Managing Issues

Open issues should be actionable: generally either a reproducible bug report, or a specific feature request. From the perspective of the core developers, the issues list behaves like a shared todo list. Every item on the list requires a little bit of attention each time we check the list.

GitHub Issues are not very good for managing ideas that are not immediately actionable. Better to use the TiddlyWiki discussion groups for open ended questions, or speculative discussions of new features.

Creating Issues

Before creating a GitHub issue it is good etiquette to search through the existing issues to see whether the problem has already been reported. If a search isn't practical, don't worry too much; GitHub makes it easy to merge existing issues.

When you do create an issue, remember that for effective debugging, we need as much information as possible. At a minimum, please try to include:

  • A descriptive title
  • A summary
  • Steps to reproduce
  • Expected behaviour
  • Context (OS, browser etc.)

Consider also adding screenshots if it makes things clearer.

There's a lot of good material on the web about bug reports:

resolvepath Macro

21st February 2015 at 10:38pm

The resolvepath macro takes a relative path and an absolute path. It interprets the former relative to the latter, and returns the absolute equivalent of the former.

Folders in the paths are delimited by /.

The special folder name . denotes the current folder, and .. denotes the parent folder.

If the absolute path indicates a folder, it needs to end with /. Anything after the final / is treated as an arbitrary filename within the intended path, and is discarded.

If no absolute path is supplied, the relative path is returned unchanged, except that anything after the final / is discarded.

The return value is a path, but does not end with /.

Parameters

source
the relative path
root
the absolute path

Examples

resolvepath Macro (Examples)

21st February 2015 at 6:34pm

<<resolvepath "./backup" "http://example.com/store.php">>
<<resolvepath "backup" "http://example.com/store.php">>
<<resolvepath "../backup" "http://example.com/store.php">>
<<resolvepath "../jpg/Motovun_Jack.jpg" "http://example.com/resources/images/png/">>
<<resolvepath "../jpg/../png/Motovun_Jack.png">>
<<resolvepath "jpg/Motovun_Jack.jpg">>

Resources

2nd June 2016 at 6:27pm

These are sites with resources created by the TiddlyWiki Community help you get the best out of TiddlyWiki: plugins, macros and more. Submit new entries via GitHub, Twitter or by posting in the TiddlyWiki Groups.

rest Operator

3rd February 2015 at 7:08pm
purposediscard the first N input titles
inputa selection of titles
parameterN = an integer, defaulting to 1
outputall but the first N input titles

butfirst and bf are synonyms for rest.

Examples

rest Operator (Examples)

23rd January 2015 at 9:17pm

These examples make use of the Days of the Week tiddler.

[list[Days of the Week]rest[]]

[list[Days of the Week]rest[3]]

Z Y X W V U T S R Q P O +[rest[5]]

Résumé Builder Edition

2nd June 2016 at 6:15am

The Résumé Builder edition of TiddlyWiki gets you started with a simple way to create a professional resume that you can save to the web or print.

http://tiddlywiki.com/editions/resumebuilder/

RevealWidget

23rd December 2015 at 10:28pm

Introduction

The reveal widget hides or shows its content depending upon the value of a state tiddler. The type of the widget determines the condition for the content being displayed:

  • type=match: the content is displayed if the state tiddler matches a specified value
  • type=nomatch: the content is displayed if the state tiddler doesn't match a specified value
  • type=popup: the content is displayed as a popup as described in the PopupMechanism

Content and Attributes

The content of the <$reveal> widget is displayed according to the rules given above.

AttributeDescription
stateA TextReference containing the state
tagOverrides the default HTML element tag (<div> in block mode or <span> in inline mode)
typeThe type of matching performed: match, nomatch or popup
textThe text to match when the type is match and nomatch
classAn optional CSS class name to be assigned to the HTML element
» Set to tc-popup-keep to make a popup "sticky", so it won't close when you click inside of it
styleAn optional CSS style attribute to be assigned to the HTML element
positionThe position used for the popup when the type is popup. Can be left, above, aboveright, right, belowleft or below
defaultDefault value to use when the state tiddler is missing
animateSet to "yes" to animate opening and closure (defaults to "no")
retainSet to "yes" to force the content to be retained even when hidden (defaults to "no")

Retaining the content when hidden can give poor performance since the hidden content requires refresh processing even though it is not displayed. On the other hand, the content can be revealed much more quickly. Note that setting animate="yes" will also force retain="yes".

Examples

Simple content reveal

Here's a simple example of showing and hiding content with buttons:

<$button set="$:/state/SampleReveal1" setTo="show">Show me</$button>
<$button set="$:/state/SampleReveal1" setTo="hide">Hide me</$button>

<$reveal type="match" state="$:/state/SampleReveal1" text="show">

! This is the revealed content
And this is some text

</$reveal>

That renders as:

Accordion or Slider

An "accordion" or "slider" is a button that can be used to toggle the display of associated content.

<$reveal type="nomatch" state="$:/state/SampleReveal2" text="show">

<$button set="$:/state/SampleReveal2" setTo="show">Show me</$button>

</$reveal>
<$reveal type="match" state="$:/state/SampleReveal2" text="show">

<$button set="$:/state/SampleReveal2" setTo="hide">Hide me</$button>

! This is the revealed content
And this is some text

</$reveal>

That renders as:

Popup

Here is a simple example of a popup built with the RevealWidget:

<$button popup="$:/SamplePopupState">Pop me up!</$button>

<$reveal type="popup" state="$:/SamplePopupState">
<div class="tc-drop-down">

! This is the popup
And this is some text

</div>
</$reveal>

That renders as:

reverse Operator

3rd February 2015 at 7:08pm
purposereverse the order of the input titles
inputa selection of titles
parameternone
outputthe input, in reverse order

reverse Operator (Examples)

23rd January 2015 at 9:27pm

These examples make use of the Days of the Week tiddler.

[list[Days of the Week]reverse[]]

RoadMap

18th April 2016 at 1:37pm

There are still some areas of TiddlyWiki that have not been fully developed beyond the experimental stage:

  • Multiple users with the client-server configuration
  • Smartphone user experience
  • New tiddler manager, including bulk operations like search and replace
  • Federation that can run in the browser or under Node.js
  • Improved editions
  • Improved support for third party plugin libraries

Also see the issues list on GitHub: https://github.com/Jermolene/TiddlyWiki5

SafeMode

10th June 2016 at 9:24am

Introduction

Safe mode provides a way to disabling most customisations in TiddlyWiki. This is useful because if TiddlyWiki is customised incorrectly it can be rendered inoperable. A particular issue is that some customisations break when upgrading to a newer core version of TiddlyWiki (especially during the beta).

Enabling Safe Mode

Safe mode is enabled in the browser by starting TiddlyWiki with the URL hash set to the string #:safe. For example:

http://tiddlywiki.com/#:safe

How Safe Mode Works

Safe mode triggers two changes:

  • All plugins are temporarily disabled. You can use the control panel to disable individual plugins
  • Any tiddlers that override shadow tiddlers are renamed to give them the prefix SAFE: , thus restoring the underlying shadow tiddler
  • Certain configuration options are ignored, and the default settings used instead:

A report tiddler is displayed that allows you to inspect the tiddlers that were renamed.

sameday Operator

3rd February 2015 at 7:09pm
purposefilter the input by date
inputa selection of titles
suffixF = the name of a date field, defaulting to modified
parameterD = a date, in the format YYYYMMDD
outputthose input tiddlers in which field F has the value D, ignoring time

If D is not a valid date, the output is empty.

D may include a time of day, but this is ignored.

Examples

sameday Operator (Examples)

24th January 2015 at 10:17am

[sameday[20140410]]
→ tiddlers modified on 10 April 2014

[sameday:created[20140410]]
→ tiddlers created on 10 April 2014

SampleAlert

7th January 2016 at 11:01pm

This is a demonstration alert.

Note that the trashcan icon deletes the tiddler containing this alert. You can also remove it by opening the tiddler SampleAlert and editing it to remove the tag $:/tags/Alert.

SampleModal

12th September 2014 at 3:55pm

Hello,

This is an example modal containing the following message:

SampleNotification

12th September 2014 at 3:56pm

This is a notification!

SampleTabFour

21st February 2015 at 9:16pm

This is the fourth of our sample tabs.

SampleTabOne

This is the first of our sample tabs.

SampleTabThree

This is the third of our sample tabs.

SampleTabTwo

This is the second of our sample tabs.

sampletag1

This is sampletag1.

sampletag2

This is sampletag2.

SampleTiddlerFirst

This is test tiddler SampleTiddlerFirst.

SampleTiddlerSecond

This is test tiddler SampleTiddlerSecond.

SampleTiddlerThird

This is test tiddler SampleTiddlerThird.

SampleWizard

12th September 2014 at 3:55pm

This is a modal wizard dialogue, stored in the tiddler SampleWizard.

You can .

SampleWizard2

12th September 2014 at 3:55pm

This is another modal wizard dialogue, stored in the tiddler SampleWizard2.

You can .

Saturday

18th January 2015 at 1:15pm

This example tiddler is used to illustrate some of the Filter Operators.

SaveTiddlerCommand

18th December 2013 at 12:16pm

Saves an individual tiddler in its raw text or binary format to the specified filename.

--savetiddler <title> <filename>

By default, the filename is resolved relative to the output subdirectory of the edition directory. The --output command can be used to direct output to a different directory.

Any missing directories in the path to the filename are automatically created.

SaveTiddlersCommand

9th June 2014 at 1:16pm

Saves a group of tiddlers in their raw text or binary format to the specified directory.

--savetiddlers <filter> <pathname> ["noclean"]

By default, the pathname is resolved relative to the output subdirectory of the edition directory. The --output command can be used to direct output to a different directory.

The output directory is cleared of existing files before saving the specified files. The deletion can be disabled by specifying the noclean flag.

Any missing directories in the pathname are automatically created.

Saving

12th September 2014 at 3:07pm

Saving on a PHP Server

10th June 2016 at 9:26am

The built-in TiddlySpot saver can also be used to save changes to a simple PHP script that you can run on most hosting providers.

These are preliminary instructions that need verification

  1. Download a copy of store.php from:
  2. Edit your copy of store.php to add your username(s) and password(s). Find the line $USERS = array( 'UserName1'=>'Password1', etc) and replace Username1 and Password1 with your desired username and password
    • Make sure you leave all the punctuation and code, such as the single quotes, intact
  3. Save the file
  4. Using FTP or your web interface, upload store.php to your server. Make sure that the filename is correct
  5. In TiddlyWiki, go to the Saving tab of the control panel and enter the following information:
    • Your username as the wiki name
    • Your password
    • The URL of the store.php file (not the URL of the wiki, this must the full URL to the store.php file)

The control panel Saving tab includes the following configuration options:

NameDescription
Server URLThe full URL to the store.php file on your server
Upload filenameThe filename used to save the TiddlyWiki (defaults to index.html)
Upload directoryThe relative path from store.php to the directory used for saving the file
Backup directoryThe relative path from store.php to the directory used for backups

Saving on Android

1st June 2016 at 5:22pm

The AndTidWiki app for Android devices makes it possible to edit and save changes to TiddlyWiki5, including working offline without a network connection. Download it here.

Instructions for use:

  1. Download an empty TiddlyWiki on another web browser
  2. Move the file you just downloaded to the directory /sdcard/andtidwiki
    • You may rename it, but be sure to keep the .html or .htm extension
  3. Open AndTidWiki
    • Don't use Menu/new TiddlyWiki menu option (it only supports the older TiddlyWikiClassic)
  4. Open the file by touching its filename
  5. Try creating a new tiddler using the new tiddler button in the sidebar. Type some content for the tiddler, and click the ok button
    • The wiki will be saved, and a confirmation message should appear at the top right of the window

Note: You can save your changes by clicking the save changes button in the sidebar even if you have not clicked the ok button to complete editing a tiddler

Note that AndTidWiki is published independently of TiddlyWiki

Saving on InternetExplorer

12th September 2014 at 3:10pm

By default, TiddlyWiki saves changes on InternetExplorer 10 and above using a saver module that downloads the newly modified file, rather than saving it directly. There are two alternatives that both save changes directly to the file:

Saving on iPad/iPhone

2nd June 2016 at 3:48am

The iPad/iPhone app TWEdit makes it possible to edit and save changes to TiddlyWiki5, including working offline without a network connection. Download it here.

Instructions for use:

  1. Open TWEdit
  2. Touch the title in the centre of the toolbar in order
    • A text box should appear allowing you to enter a URL
  3. Enter the URL http://tiddlywiki.com/empty.html
  4. When the empty TiddlyWiki has loaded, touch the save icon (it's the second icon from the right on the top toolbar)
    • An alert box should appear allowing you to enter a local filename
  5. Enter the filename you wish to use for the document (ending with .html)
  6. Try creating a new tiddler using the new tiddler button in the sidebar. Type some content for the tiddler, and click the ok button
  7. Save your changes by clicking the save changes button in the sidebar
    • A confirmation message should appear at the top right of the window

Note that TWEdit is published independently of TiddlyWiki

Saving on Safari

20th May 2016 at 10:03am

This method of saving changes is clunky because it requires manual intervention for each save.

  1. Download an empty TiddlyWiki by clicking this button:

    If the button doesn't work save this link: http://tiddlywiki.com/empty.html

    Your browser may ask you to accept the download before it begins

  2. Locate the file you just downloaded
    • You may rename it, but be sure to keep the .html or .htm extension
  3. Open the file in Safari
  4. Try creating a new tiddler using the new tiddler button in the sidebar. Type some content for the tiddler, and click the ok button
  5. Save your changes by clicking the save changes button in the sidebar
  6. A popup "Download changes" window is displayed that includes a link labelled Right-click to save changes
  7. Right-click on the link and select "Download Linked File As..." from the popup menu
  8. Navigate to the folder containing your wiki HTML file and select the existing file
  9. Click the "Save" button
  10. Click "Replace" to confirm replacing the existing file
  11. Verify that your changes have been saved correctly

Saving on TiddlySpot

10th June 2016 at 9:26am

TiddlySpot is a free hosting service for TiddlyWiki documents from Simon and Daniel Baird. The easiest way to get started is to sign up for a new wiki at http://tiddlyspot.com - by default you'll get the latest release of TiddlyWiki Classic.

You can upload an existing TiddlyWiki5 document from your local disc to TiddlySpot by following these steps:

  1. Sign up for a new wiki at http://tiddlyspot.com/, and remember the wiki name and password
  2. Open your locally stored TiddlyWiki document in your browser
  3. Fill in the TiddlySpot wikiname and password in Saving tab of the control panel
  4. Click the save changes button. You should get a confirmation notification at the top right saying Saved wiki. Saving can take several seconds if you're on a slow connection or working with a large wiki.
  5. Navigate to your TiddlySpot URL at http://{wikiname}.tiddlyspot.com/

Note that your password is sent unencrypted when using TiddlySpot. From http://faq.tiddlyspot.com/:

Is Tiddlyspot secure?

No. Tiddlyspot does not use SSL/https. Your password is sent in clear text when uploading and when authenticating to access a private site. This means that your Tiddlyspot is vulnerable to packet sniffing and your password could be discovered by a malicious third party. Also your data is transmitted unencrypted when you view your site, even if it is a private site. For this reason please don't put sensitive information such as banking details in your Tiddlyspot and don't use a password that you use for other high security sites.

Problems with saving on TiddlySpot

In case you run into this error when uploading a new or freshly upgraded local TiddlyWiki to TiddlySpot :

Error while saving:

Error:NS_ERROR_DOM_BAD_URI: Access to restricted URI denied

The upgrade operation falls foul of a security restriction in Firefox. Until this can be resolved, we suggest using Chrome.

    1. Use Chrome to open the local TiddlyWiki document you want to upload to TiddlySpot and follow the steps 1 through 5 described above
    2. Once you've checked the TiddlySpot-hosted TiddlyWiki loads properly in Chrome, you should be able to access, edit and save using TiddlyFox again
  • After you've uploaded your local document once, further editing and saving of the online version hosted on TiddlySpot should work with any modern browser of your choice.
    • Don't forget to fill in the TiddlySpot wikiname and password in your TiddlySpot TiddlyWiki control panel for any new browser you want to use for saving changes
  • See also : Upgrading

Saving with the HTML5 fallback saver

20th May 2016 at 10:03am

This method of saving changes is clunky because it requires manual intervention for each save. It has the advantage of working on almost all desktop browsers, and many mobile browsers.

  1. Download an empty TiddlyWiki by clicking this button:

    If the button doesn't work save this link: http://tiddlywiki.com/empty.html

    Your browser may ask you to accept the download before it begins

  2. Locate the file you just downloaded
    • You may rename it, but be sure to keep the .html or .htm extension
  3. Open the file in your browser
  4. Try creating a new tiddler using the new tiddler button in the sidebar. Type some content for the tiddler, and click the ok button
  5. Save your changes by clicking the save changes button in the sidebar
  6. Your browser will download a new copy of the wiki incorporating your changes
  7. Locate the newly downloaded file and open it in your browser
  8. Verify that your changes have been saved correctly

Tip: most browsers have an option to prompt each time for the download location. This allows you to select the existing version of the file and replace it.

Saving with TiddlyFox

1st June 2016 at 5:02pm

If you're using Firefox for Android, see the instructions for Saving with TiddlyFox on Android.

  1. Ensure you have the latest version of Firefox
  2. Install the latest release of the TiddlyFox extension from:
  3. Restart Firefox
  4. Download an empty TiddlyWiki by clicking this button:

  5. Locate the file you just downloaded
    • You may rename it, but be sure to keep the .html or .htm extension
  6. Open the file in Firefox
  7. Click OK in response to the prompt from TiddlyFox that asks whether to enable saving for this file
  8. Try creating a new tiddler using the new tiddler button in the sidebar. Type some content for the tiddler, and click the ok button
  9. Save your changes by clicking the save changes button in the sidebar
    • Look for the yellow notification Saved wiki at the top right of the window
  10. Refresh the browser window to verify that your changes have been saved correctly

Saving with TiddlyFox on Android

1st June 2016 at 5:02pm

(Alternatively, see the video tutorial)

  1. Ensure you have the latest version of Firefox for Android
  2. Install the latest release of the TiddlyFox extension from:
  3. Install this extension to be able to save the TiddlyWiki file locally:
  4. Download an empty TiddlyWiki by saving this link:

    (to save the link, ensure you've installed the "save-link-menus" extension and then long-press on the link and choose "Save link")

  5. When the file has downloaded, click on it within the notification tray or the download manager application
  6. Choose to open the file in Firefox (rather than the default Android viewer)
  7. Click OK in response to the prompt from TiddlyFox that asks whether to enable saving for this file
  8. Try creating a new tiddler using the new tiddler button in the sidebar. Type some content for the tiddler, and click the ok button
  9. Save your changes by clicking the save changes button in the sidebar
    • Look for the yellow notification Saved wiki at the top right of the window
  10. Refresh the browser window to verify that your changes have been saved correctly

Saving with TiddlyIE

1st June 2016 at 12:18pm
  1. Install the TiddlyIE add-on from:
  2. Restart Internet Explorer. IE will prompt you to enable the TiddlyIE add-on.

    You may also see a prompt to enable the Microsoft Script Runtime

  3. Download an empty TiddlyWiki by saving this link:

    http://tiddlywiki.com/empty.html

  4. Locate the file you just downloaded
    • You may rename it, but be sure to keep the .html or .htm extension
  5. Open the file in Internet Explorer
  6. Try creating a new tiddler using the new tiddler button in the sidebar. Type some content for the tiddler, and click the ok button
  7. Save your changes by clicking the save changes button in the sidebar. Internet Explorer will ask for your consent to save the file locally by presenting a file Save As dialog.
  8. Refresh the browser window to verify that your changes have been saved correctly

SavingMechanism

9th July 2016 at 12:27pm

The SavingMechanism is the mechanism by which TiddlyWiki generates a new HTML file and stores it. It is different from the sync mechanism, which is concerned with synchronising changes to individual tiddlers back to a server (see http://tiddlywiki.com/dev/#SyncAdaptorModules for more details).

The following steps are involved:

  1. The saver mechanism uses the filter defined in $:/config/SaverFilter to specify which modified tiddlers trigger the dirty state for the wiki. (The dirty state is reflected in the red colouring of the "save changes" button in the sidebar).
  2. The ButtonWidget is used to generate a tm-save-wiki message to trigger the save operation
  3. The optional parameter for the message specifies the template that will be used for generating the HTML file, defaulting to $:/core/save/all
  4. The template includes a variable assignment that specifies a filter to select the tiddlers that should be included in the saved file. It then transcludes the main page template $:/core/templates/tiddlywiki5.html
    • The template includes a reference to $(publishFilter)$ that allows the filter to be customised via a global variable
  5. The tm-save-wiki handler renders the template to generate the HTML file
  6. The message handler chooses the highest priority "saver" module that can handle saving the file

Scalability

12th September 2014 at 3:58pm

You might expect that TiddlyWiki's architecture as a SinglePageApplication would make it unsuitable for large amounts of data. In fact, TiddlyWiki users regularly work with files that are 20 or 30 megabytes without problems - and successful experiments have been done up into the gigabytes.

Scripts for TiddlyWiki on Node.js

15th October 2014 at 5:53pm

Script Files

The TiddlyWiki5 repository contains several scripts in the bin folder that you can use to automate common tasks, or as a useful starting point for your own scripts. See Scripts for building tiddlywiki.com for details of the scripts used to build and release http://tiddlywiki.com/.

All the scripts expect to be run from the root folder of the repository.

serve: serves tw5.com

./bin/serve.sh -h
./bin/serve.sh [edition dir] [username] [password] [host] [port]

Or:

./bin/serve.cmd -h
./bin/serve.cmd [edition dir] [username] [password] [host] [port]

This script starts TiddlyWiki5 running as an HTTP server, defaulting to the content from the tw5.com-server edition. By default, the Node.js serves on port 8080. If the optional username parameter is provided, it is used for signing edits. If the password is provided then HTTP basic authentication is used. Run the script with the -h parameter to see online help.

To experiment with this configuration, run the script and then visit http://127.0.0.1:8080 in a browser.

Changes made in the browser propagate to the server over HTTP (use the browser developer console to see these requests). The server then syncs changes to the file system (and logs each change to the screen).

test: build and run tests

This script runs the test edition of TiddlyWiki on the server to perform the server-side tests and to build test.html for running the tests in the browser.

lazy: serves tw5.com with lazily loaded images

./bin/lazy.sh <username> [<password>]

Or:

./bin/lazy.cmd <username> [<password>]

This script serves the tw5.com-server edition content with LazyLoading applied to images.

2bld: builds TiddlyWiki 2.6.5

This script builds TiddlyWiki 2.6.5 from the original source and then displays the differences between them (diff is used for *nix, fc for Windows).

ScrollableWidget

27th April 2015 at 1:35pm

Introduction

The scrollable widget wraps its content in a scrollable frame. The user can scroll the contents with the mouse or with touch gestures. Code can use the WidgetMessage: tm-scroll to programmatically scroll specific DOM nodes into view.

Content and Attributes

The content of the <$scrollable> widget is displayed within a pair of wrapper DIVs. If the inner DIV is larger then it scrolls within the outer one. CSS is used to specify the size of the outer wrapper.

AttributeDescription
classThe CSS class(es) to be applied to the outer DIV
fallthroughSee below

If a scrollable widget can't handle the tm-scroll message because the inner DIV fits within the outer DIV, then by default the message falls through to the parent widget. Setting the fallthrough attribute to no prevents this behaviour.

Examples

This example requires the following CSS definitions from $:/_tw5.com-styles:

.tc-scrollable-demo {
	border: 1px solid <<colour message-border>>;
	background-color: <<colour message-background>>;
	padding: 1em;
	height: 400px;
	position: relative;
}

This wiki text shows how to display a list within the scrollable widget:

<$scrollable class='tc-scrollable-demo'>
<$list filter='[!is[system]]'>

<$view field='title'/>: <$list filter='[all[current]links[]sort[title]]' storyview='pop'>
<$link><$view field='title'/></$link>
</$list>

</$list>
</$scrollable>

That renders as:

AllTiddlers:

SampleAlert: $:/tags/Alert SampleAlert

TableOfContents:

TiddlyWiki European Meetup 2016:

About: TiddlyWiki

Acknowledgements: Community TiddlyWiki

Contributors:

Developers: TiddlyWiki

History of TiddlyWiki: ActiveX BT GTDTiddlyWiki JavaScript JeremyRuston LifeHacker Osmosoft SocialText TiddlySpace TiddlyWeb TiddlyWiki TiddlyWiki5 UnaMesa

Philosophy of Tiddlers: Structuring TiddlyWiki Tiddlers TiddlyWiki

BuildCommand: TiddlyWikiFolders

ClearPasswordCommand:

Commands: TiddlyWiki on Node.js

EditionsCommand:

HelpCommand:

InitCommand: Environment Variables on Node.js

LoadCommand:

MakeLibraryCommand: UpgradeMechanism

OutputCommand:

PasswordCommand:

RenderTiddlerCommand:

RenderTiddlersCommand:

SaveTiddlerCommand:

SaveTiddlersCommand:

ServerCommand:

SetFieldCommand:

UnpackPluginCommand:

VerboseCommand:

VersionCommand:

Articles: Forums GitHub

Community: TiddlyWiki

Contributing: HelpingTiddlyWiki Improving TiddlyWiki Documentation ReportingBugs TiddlyWiki

Contributor License Agreement: OpenSource TiddlyWiki TiddlyWiki5 UnaMesa

Examples: Forums GitHub

Forums: TiddlyDesktop TiddlyFox TiddlyWiki TiddlyWiki Hangouts TiddlyWikiDev

HelpingTiddlyWiki: Contributing GitHub OpenSource TiddlyWiki

Improving TiddlyWiki Documentation: Contributor License Agreement Documentation Style Guide Signing the Contributor License Agreement TiddlyWiki

Latest:

Meetups: OXTWIG TiddlyWiki TiddlyWiki Camp Paris TiddlyWiki European Meetup 2016

OXTWIG: TiddlyWiki

ReportingBugs: Forums GitHub TiddlyWiki

Resources: Community Forums GitHub

Signing the Contributor License Agreement: GitHub

TiddlyWiki Camp Paris: TiddlyWiki

TiddlyWiki Hangouts: TiddlyWiki

Translate TiddlyWiki into your language: GitHub TiddlyWiki

Tutorials:

"A free, open source wiki revisited" by Mark Gibbs, NetworkWorld: TiddlyWiki

"Notizen mit TiddlyWiki systemübergreifend nutzen" by Michael Sonntag: TiddlyWiki

"Setting Up a Personal TiddlyWiki Server on OS X" by Kris Johnson: TiddlyWiki TiddlyWiki on Node.js

"TiddlyWiki 5 im Betatest" by besim: JavaScript TiddlyWiki TiddlyWiki5 TiddlyWikiClassic

"TiddlyWiki" by Sander de Boer: JavaScript NoScript TiddlyWiki

"A Thesis Notebook" by Alberto Molina: TiddlyWiki

Interactive Git Documentation by Devin Weaver:

Obadiah TOC:

PESpot Lesson Planner by Patrick Detzner: TiddlyWiki

"PETTIL - Forth for the Commodore PET" by Charlie Hitselberger: TiddlyWiki

Simple Zork-like Game by Jed Carty: TiddlyWiki

TriTarget.org by Devin Weaver: TiddlyWiki TriTarget

Ace Editor Plugin by Joerg Plewe: IndexedDb SyncAdaptor TiddlyWiki

"BJTools" by buggyj:

"BrainTest - tools for a digital brain" by Danielo Rodriguez:

"CouchDB Adaptor" by William Shallum: CouchDB TiddlyWiki

"Encrypt single tiddler plugin" by Danielo Rodriguez:

Eucaly's Tiddly World: FieldFilter FlexWidth MatchFilter MonkeyTaggerMacro PopupTagger QuickJump TagBar TagTable TiddlyWiki TitleMe

"GSD5" by Roma Hicks: TiddlyWiki TiddlyWiki5

"Heeg.ru" by sini-Kit: TiddlyWiki

IndexedDB Plugin by Andreas Abeck: IndexedDB IndexedDb SyncAdaptor

MathJax Plugin by Martin Kantor: MathJax MathML TeX TiddlyWiki

Plugins by TheDiveO: FontAwesome TheDiveO TiddlyWiki

SeeAlso by Matias Goldman:

"TB5 - a pocket full of tips" by Tobias Beer: TiddlyWiki

"TW5 Magick" by Stephan Hradek: TiddlyWiki

TWCommunitySearch: TiddlyWiki

TWGuides by Andreas Hahn: TiddlyWiki

TWaddle by Matias Goldman: Bigger community ⇄ Better TW TiddlyWiki

TiddlyChrome by Arlen Beiler: TiddlyWiki

TiddlyClip by buggyjay: BuggyJay Firefox TiddlyClip TiddlyWiki

TiddlyMap Plugin by Felix Küppers: GitHub TiddlyWiki

TiddlyWiki Jingle by Måns Mårtensson: TiddlyWiki

"TiddlyWiki Notes" by James Anderson: TiddlyWiki

"TiddlyWiki Posts" by Jeffrey Kishner: TiddlyWiki

TiddlyWiki Video Tutorials by Francis Meetze: TiddlyWiki

TiddlyWiki extensions for Sublime Text 3 by roma0104: TiddlyWiki5

"TiddlyWiki for Scholars" by Alberto Molina: TiddlyWiki

"TiddlyWiki guide FR" by Sylvain Naudin: TiddlyWiki

"TiddlyWiki 舞" by Bram Chen: TiddlyWiki

"TiddlyWiki5 Coding" by Chris Hunt: TiddlyWiki TiddlyWiki5

"TiddlyWiki5 Playground" by Ton Gerner: TiddlyWiki

"TiddlyWiki5^2 documenting while learning TiddlyWiki5" by Iannis Zannos: TiddlyWiki TiddlyWiki on Node.js TiddlyWiki5

"Wills Q&D gTD" by Matabele: TiddlyWiki

"In My Socks" by Jed Carty:

"Mal's Sandbox" by Mal: $:/core/modules/commands/load.js $:/plugins/malgam/loadnew/loadnew.js JavaScript

"SK Plugins" by Stephen Kimmel: TiddlyWiki

"TW5-TeXZilla" plugin by Joe Renes: KaTeX Plugin LaTeX MathJax MathML TiddlyWiki5

"TWeb.at" by Mario Pietsch: TiddlyWeb TiddlyWiki

"TiddlyWiki5 Bourbon" by mkt_memory: TiddlyWiki TiddlyWiki5

datepicker plugin based on Pikaday, by kixam: EditTextWidget TiddlyWiki

rboue's plugins for TiddlyWiki: TiddlyWiki

twproxy by Steve Gattuso: TiddlyWiki

vis.js Timeline by emkay, revived by kixam: TiddlyWiki

"Creating a baby journal with TiddlyWiki 5" from A Penguin in Redmond: TiddlyWiki

"Install and run TiddlyWiki on a CentOS 6 VPS using Nginx" from RoseHosting: TiddlyWiki

"Microblogging con Tiddlywiki" by Juan: TiddlyWiki

"デザイン刷新。次の25年を目指すTiddlyWiki" by Moongift: TiddlyWiki

"Shining Ark Using TiddlyWiki" by Helu: TiddlyWiki

"TW5 Mall" by David Gifford: TiddlyWiki

"TW5 Tribal Knowledge" from Scott Kingery: TiddlyWiki

"Un wiki sur votre BiblioBox avec TiddlyWiki" from A Penguin in Redmond: BiblioBox TiddlyWiki

ColourPalettes: $:/palette CSS DataTiddlers

Concepts: TiddlyWiki

Current Tiddler: storyTiddler Variable TemplateTiddlers WikiText

DataTiddlers: ActionListopsWidget ActionSetFieldWidget DictionaryTiddlers JSONTiddlers TextReference

Date Fields: DateFormat TiddlerFields TiddlyWiki

DictionaryTiddlers: $:/palettes/Vanilla ColourPalettes ContentType DataTiddlers

Dominant Append: Filters Title Selection

ExternalImages: $:/core/templates/canonical-uri-external-image TiddlyWiki TiddlyWikiFolders

Filters: $:/AdvancedSearch CountWidget Filter Operators Filter Syntax Introduction to filter notation ListWidget TiddlyWiki Title Selection

Hard and Soft Links: Macros Transclusion Variables WikiText

InfoPanel: ShadowTiddlers TiddlerFields Using links to navigate between tiddlers

JSONTiddlers: $:/HistoryList ContentType DataTiddlers JavaScript Object Notation

Macros: Core Macros Linking in WikiText Macros in WikiText Pragma Transclusion Transclusion and Substitution Variables Widgets WikiText

Messages:

ModuleType: Modules

Modules: $:/ControlPanel JavaScript ModuleType TiddlyWiki5

Order of Tagged Tiddlers: Title List

PermaLinks: $:/ControlPanel Filters TiddlyWiki

Pragma: Macros WikiText

Railroad Diagrams: Railroad Plugin

Selection Constructors: Filter Operators Filter Run Filters Title Selection

ShadowTiddlers: Plugins ShadowTiddlers

Story River: Tiddlers

SystemTags:

SystemTiddlers: Tiddlers TiddlyWiki

TagTiddlers: InfoPanel

TemplateTiddlers: Current Tiddler TiddlyWiki Transclusion Transclusion with Templates ViewTemplate WikiText

TextReference: DataTiddlers Filter Parameter Filters IndirectAttributes LinkCatcherWidget RevealWidget TextReference TiddlerFields

TiddlerFields: $:/ControlPanel BagField CaptionField ColorField CreatedField CreatorField DescriptionField DraftOfField DraftTitleField FooterField LibraryField ListField ModifiedField ModifierField NameField PluginPriorityField PluginTypeField RevisionField SourceField SubtitleField TagsField TextField TiddlerFields Tiddlers TiddlyWebAdaptor TitleField TypeField

TiddlerLinks: $:/core/copyright.txt $:/SiteTitle ATiddlerThatDoesntExist Filters InfoPanel StoryView TiddlerLinks TiddlyWiki TiddlyWiki5

Tiddlers: JavaScript TiddlerFields TiddlyWiki

TiddlyWiki: Community JeremyRuston ListField Macros OpenSource Philosophy of Tiddlers Structuring TiddlyWiki Tagging TiddlerLinks Tiddlers WikiText

TiddlyWiki5: JavaScript Node.js TiddlyWiki

TiddlyWikiFolders: $:/config/OriginalTiddlerPaths BuildCommand Customising Tiddler File Naming PluginMechanism TiddlerFiles TiddlyWiki on Node.js

Title List: Filters ListField PermaLinks Title Selection

Title Selection: Filters Title List

Transclusion: Philosophy of Tiddlers TemplateTiddlers TextReference TranscludeWidget Transclusion and Substitution Transclusion Basic Usage Transclusion in WikiText Transclusion with Templates

Wiki: WikiStore

WikiText: Formatting text in TiddlyWiki WikiText

Customise TiddlyWiki: TiddlyWiki

Customising search results: $:/config/SearchResults/Default $:/core/ui/DefaultSearchResultList $:/tags/SearchResults

Page and tiddler layout customisation: $:/config/ViewToolbarButtons/Visibility/Recipe $:/core/images/ $:/core/ui/ $:/core/ui/SideBar/More $:/tags/EditTemplate $:/tags/ViewToolbar SystemTag SystemTags TiddlyWiki ViewToolbar

BT: JeremyRuston Osmosoft

Base64:

CamelCase: CamelCase

Cascading Style Sheets:

Comma-Separated Values:

ContentType: Cascading Style Sheets Comma-Separated Values TiddlyWiki

Data URI: Cascading Style Sheets

Definitions: Concepts TiddlyWiki

Document Object Model: TiddlyWiki on Node.js Widgets

FederatialLimited: JeremyRuston

GitHub: GitHub TiddlyWiki

GuerillaWiki: GuerillaWiki TiddlyWiki

HyperText Markup Language: WikiText

JavaScript Object Notation: DataTiddlers

JavaScript:

JeremyRuston: TiddlyWiki

Jermolene: JeremyRuston

MathML: MathML TiddlyWiki5 WikiText

NW.js: Node.js OpenSource TiddlyWiki TiddlyWiki on NW.js

Node.js: JavaScript TiddlyWiki on Node.js

OpenSource: OpenSource

Osmosoft: BT JeremyRuston TiddlyWiki

Percent Encoding: URI

Quine: TiddlyWiki

SingleFileApplication: SinglePageApplication TiddlyWiki

SinglePageApplication: SingleFileApplication SinglePageApplication TiddlyWiki

Stanford JavaScript Crypto Library:

TiddlyDesktop: GitHub Introducing TiddlyDesktop Video NW.js OpenSource TiddlyDesktop TiddlyDesktop Releases TiddlyWiki TiddlyWikiClassic

TiddlyFox: Firefox GitHub Saving with TiddlyFox Saving with TiddlyFox on Android TiddlyFox TiddlyWiki

TiddlyIE: Saving with TiddlyIE TiddlyIE TiddlyWiki

TiddlySpace: BT Osmosoft TiddlySpace TiddlyWeb

TiddlyWeb: BT Osmosoft Tiddlers TiddlySpace TiddlyWeb TiddlyWiki TiddlyWiki5

TiddlyWikiClassic: MarioPietsch TiddlyWiki TiddlyWikiClassic

URI:

node-webkit: NW.js

Alice in Wonderland:

Caruso - Ave Maria:

GroupedLists: $:/core/ui/MoreSideBar/Types $:/core/ui/SideBar/Recent

ImageGallery Example: $:/tags/Image ListWidget TranscludeWidget

SampleNotification:

SampleTabFour:

SampleTabOne:

SampleTabThree:

SampleTabTwo:

SampleTiddlerFirst: SampleTiddlerFirst

SampleTiddlerSecond: SampleTiddlerSecond

SampleTiddlerThird: SampleTiddlerThird

SampleWizard: SampleWizard

SampleWizard2: SampleWizard2

TabbedExampleType:

Contents:

First:

FirstOne:

FirstThree:

FirstTwo:

Fourth:

Second:

SecondOne:

SecondThree:

SecondThreeOne:

SecondThreeThree:

SecondThreeTwo:

SecondTwo:

Third:

ThirdOne:

ThirdThree:

ThirdTwo:

Example Table of Contents: Expandable:

Example Table of Contents: Selectively Expandable:

Example Table of Contents: Simple:

Example Table of Contents: Sorted Expandable:

Example Table of Contents: Tabbed Internal:

Example Table of Contents: Tabbed External:

Example for tag Macro:

Compose ballad: TaskManagementExample

Get the Ring: TaskManagementExample

Go to Mordor: TaskManagementExample

Kill the Dragon: TaskManagementExample

Make the beds: TaskManagementExample

TaskManagementExample: TiddlyWiki5

done:

task: TaskManagementExample

TiddlyWiki.mp3:

Days of the Week:

Friday:

Monday:

Saturday:

Sunday:

Thursday:

Tuesday:

Wednesday:

sampletag1:

sampletag2:

Blog Edition: TiddlyWiki

Editions: TiddlyWiki

Empty Edition: TiddlyWiki

Full Edition: TiddlyWiki

Résumé Builder Edition: TiddlyWiki

Text-Slicer Edition: TiddlyWiki

AutoSave: $:/config/AutoSave $:/ControlPanel SaverModule TiddlyWiki

DateFormat: ViewWidget

Features: Quine TiddlyWiki

Future Proof: OpenSource TiddlyWiki

ImportTiddlers: GoogleChrome TiddlyWiki

LazyLoading: LazyLoadingMechanism TiddlyWeb TiddlyWiki TiddlyWiki in the Sky for TiddlyWeb TiddlyWiki on Node.js

Modals: TiddlyWiki WidgetMessage: tm-modal

Notifications: TiddlyWiki

SafeMode: $:/ControlPanel TiddlyWiki WikiParserRuleConfiguration

Scalability: SinglePageApplication TiddlyWiki

Searching in TiddlyWiki: $:/AdvancedSearch Filters

ListField: Filters NavigatorWidget StoryList Tagging TiddlerFields Title List

MultiTiddlerFileSyntax: MultiTiddlerFiles

MultiTiddlerFiles: $:/language/ControlPanel/Basics/Caption $:/language/ControlPanel/Basics/Version MultiTiddlerFiles

TiddlerFiles: ContentType TiddlyWiki

Filter Operators: Filter Parameter Filter Step Filter Syntax Filters Selection Constructors Title Selection

Introduction to filter notation: TextReference Variables

addprefix Operator:

addsuffix Operator:

after Operator:

all Operator: Current Tiddler Dominant Append Filter Parameter Hard and Soft Links ShadowTiddlers

allafter Operator:

allbefore Operator:

append Operator:

backlinks Operator: Dominant Append

before Operator:

bf Operator:

butfirst Operator:

butlast Operator:

commands Operator:

days Operator:

each Operator: Title List

eachday Operator:

editiondescription Operator:

editions Operator:

addprefix Operator (Examples):

addsuffix Operator (Examples):

after Operator (Examples): Thursday

all Operator (Examples):

allafter Operator (Examples):

allbefore Operator (Examples):

append Operator (Examples):

backlinks Operator (Examples):

before Operator (Examples): Thursday

butlast Operator (Examples):

commands Operator (Examples):

days Operator (Examples):

each Operator (Examples): GroupedLists

eachday Operator (Examples): GroupedLists

field Operator (Examples):

fields Operator (Examples):

first Operator (Examples):

get Operator (Examples):

getindex Operator (Examples):

has Operator (Examples):

indexes Operator (Examples):

is Operator (Examples):

last Operator (Examples):

limit Operator (Examples):

links Operator (Examples): Filter Operators HelloThere links Operator

list Operator (Examples):

listed Operator (Examples):

modules Operator (Examples):

moduletypes Operator (Examples):

move Operator (Examples):

next Operator (Examples):

nsort Operator (Examples):

nsortcs Operator (Examples):

nth Operator (Examples):

plugintiddlers Operator (Examples):

prefix Operator (Examples):

prepend Operator (Examples):

previous Operator (Examples):

putafter Operator (Examples):

putbefore Operator (Examples):

putfirst Operator (Examples):

putlast Operator (Examples):

regexp Operator (Examples): Variables

remove Operator (Examples):

removeprefix Operator (Examples):

removesuffix Operator (Examples):

replace Operator (Examples):

rest Operator (Examples):

reverse Operator (Examples):

sameday Operator (Examples):

search Operator (Examples):

shadowsource Operator (Examples):

sort Operator (Examples):

sortby Operator (Examples):

sortcs Operator (Examples):

splitbefore Operator (Examples):

storyviews Operator (Examples):

suffix Operator (Examples):

tag Operator (Examples):

tagging Operator (Examples):

tags Operator (Examples):

title Operator (Examples):

untagged Operator (Examples):

field Operator: Filter Operators Filter Step

fields Operator: Dominant Append

first Operator:

get Operator: Filter Operators Title Selection

getindex Operator: DataTiddlers Dominant Append

has Operator:

haschanged Operator:

indexes Operator: DataTiddlers Dominant Append JSONTiddlers

is Operator: ContentType Current Tiddler Filter Expression Filter Run Hard and Soft Links ShadowTiddlers SystemTiddlers

last Operator:

limit Operator:

links Operator: Dominant Append

list Operator: Current Tiddler TextReference

listed Operator: Dominant Append Title List

modules Operator:

moduletypes Operator:

move Operator:

next Operator:

nsort Operator:

nsortcs Operator:

nth Operator:

plugintiddlers Operator:

prefix Operator:

prepend Operator:

previous Operator:

putafter Operator:

putbefore Operator:

putfirst Operator:

putlast Operator:

regexp Operator: Filter Run Variables

remove Operator:

removeprefix Operator:

removesuffix Operator:

replace Operator:

rest Operator:

reverse Operator:

sameday Operator:

search Operator:

shadowsource Operator: Dominant Append

sort Operator:

sortby Operator:

sortcs Operator:

splitbefore Operator: Dominant Append Table-of-Contents Macros

storyviews Operator: Modules

suffix Operator:

Filter Expression: Dominant Append Filter Run Filter Syntax ShadowTiddlers

Filter Parameter: DataTiddlers Filter Operators TextReference TiddlerFields Variables

Filter Run: Filter Expression Filter Step Title Selection

Filter Step: Filter Expression Filter Operators Filter Run Filter Syntax TiddlerFields Title Selection

Filter Syntax: Filter Expression Filter Run Filter Step Title Selection

Filter Whitespace: Filter Expression Filter Run

tag Operator: Order of Tagged Tiddlers

tagging Operator: Dominant Append Order of Tagged Tiddlers

tags Operator: Dominant Append

title Operator: Selection Constructors

untagged Operator:

GettingStarted - Android: AndTidWiki TiddlyFox TiddlyWiki

GettingStarted - Chrome: TiddlyWiki

GettingStarted - Firefox: TiddlyFox TiddlyWiki

GettingStarted - Internet Explorer: TiddlyWiki Windows HTA Hack

GettingStarted - Node.js:

GettingStarted - Safari: TiddlyWiki

GettingStarted - WebDAV: TiddlyWiki Upgrading

GettingStarted - iOS:

GettingStarted: A Gentle Guide to TiddlyWiki Encryption Saving on TiddlySpot TiddlyDesktop TiddlyWiki

A Gentle Guide to TiddlyWiki: GettingStarted TableOfContents TiddlyWiki TiddlyWiki on Node.js TiddlyWiki Video Tutorials by Francis Meetze

Discover TiddlyWiki: Community Philosophy of Tiddlers TableOfContents

HelloThere: "TiddlyWiki for Scholars" by Alberto Molina Creating and editing tiddlers Philosophy of Tiddlers Sharing your tiddlers with others Structuring TiddlyWiki TaskManagementExample TiddlyWiki

HelloThumbnail:

Some of the things you can do with TiddlyWiki: ImageGallery Example Motovun Jack.jpg SampleWizard TaskManagementExample

Ten reasons to switch to TiddlyWiki:

What happened to the original TiddlyWiki?: TiddlyWiki TiddlyWiki5 TiddlyWikiClassic WikiText

HelloThumbnail - Classic:

HelloThumbnail - Developers:

HelloThumbnail - Gentle Guide:

HelloThumbnail - HelpingTiddlyWiki:

HelloThumbnail - Introduction Video:

HelloThumbnail - Latest Version:

HelloThumbnail - TWEUM2016:

Hidden Setting: Search AutoFocus: $:/config/Search/AutoFocus TiddlyWiki

Hidden Setting: Typing Refresh Delay: $:/config/Drafts/TypingTimeout TiddlyWiki

Hidden Settings: $:/ControlPanel TiddlyWiki

Adding Babel Polyfill to TiddlyWiki: TiddlyWiki Using ES2016 for Writing Plugins

Adding a Table of Contents to the Sidebar: Table-of-Contents Macros TableOfContents

Adding a Twitter Follow button: TiddlyWiki

Adopt a Titles Policy: Documentation Style Guide SystemTiddler TiddlyWiki

Configuring the default TiddlerInfo tab: $:/config/TiddlerInfo/Default

Creating SubStories: HelloThere

Creating a custom export format: $:/tags/Exporter

Editing Tiddlers with Emacs: TiddlyWiki

Editing Tiddlers with Vim: TiddlyWiki

Generating Static Sites with TiddlyWiki: DefaultTiddlers JavaScript RenderTiddlerCommand RenderTiddlersCommand TiddlyWiki TiddlyWiki5

How to add a new tab to the sidebar: $:/core/ui/SideBar/Open $:/tags/SideBar SystemTags Table-of-Contents Macros TableOfContents Tagging

How to add a banner for GitHub contributions: $:/ContributionBanner GitHub Improving TiddlyWiki Documentation TiddlyWiki WikiFolder

How to apply custom styles by tag: JavaScript NightReader Using Stylesheets

How to build a TiddlyWiki5 from individual tiddlers: Installing TiddlyWiki on Node.js TiddlerFiles TiddlyWiki TiddlyWiki5 TiddlyWikiFolders

How to export tiddlers: $:/AdvancedSearch Filters

How to put the last modification date in a banner: $:/_MyRibbon $:/tags/PageControls $:/tags/PageTemplate Installing a plugin from the plugin library

KeyboardShortcuts: $:/ControlPanel

Making curved text with SVG: Making curved text with SVG

Preserving open tiddlers at startup: $:/DefaultTiddlers $:/StoryList TiddlyWiki

Setting a favicon: $:/favicon.ico ServerCommand TiddlyWiki

Setting a page background image: $:/ControlPanel DarkPhotos ExternalImages Images in WikiText

Sharing a TiddlyWiki on Dropbox: TiddlyWiki

Structuring TiddlyWiki: DataTiddlers Tagging TiddlerLinks Tiddlers TiddlyWiki5 Title List

Tagging: $:/TagManager Creating and editing tiddlers CSS Filters InfoPanel Order of Tagged Tiddlers Page and tiddler layout customisation TiddlerFields Title List

The First Rule of Using TiddlyWiki: TiddlyFox TiddlyWiki

Upgrading: $:/AdvancedSearch SafeMode Saving with TiddlyFox The First Rule of Using TiddlyWiki TiddlyWiki TiddlyWiki on Node.js Upgrading TiddlyWiki on Node.js

Using ES2016 for Writing Plugins: Adding Babel Polyfill to TiddlyWiki BrowserCompatibility JavaScript ModuleType PluginMechanism TiddlyWiki TiddlyWiki on Node.js

Using SVG: $:/SVGExampleRadius HelloThere Motovun Jack.svg Tiddler Fishes.svg TiddlyWiki5 Typed Blocks in WikiText WikiText

Using Stamp:

Using Stylesheets: ColourPalettes RevealWidget Stylesheet Macros TiddlyWiki WikiText

Using TiddlyWiki for GitHub project documentation: GitHub LinkWidget MarkDown ReadMe TiddlyWiki5 TiddlyWikiFolders

Using a custom path prefix with the client-server edition: ServerCommand TiddlyWiki on Node.js

Windows HTA Hack: TiddlyWiki

Blurry Lawn.jpg:

Dev Thumbnail.jpg:

Introduction Video Thumbnail.jpg:

Motovun Jack.ascii:

Motovun Jack.jpg:

Motovun Jack.pdf:

Motovun Jack.svg:

New Release Banner.png:

Newnham Horizon.jpg:

PerlinLight.jpg:

Pinstripe.gif:

TWEUM2016 Thumbnail.jpg:

Tiddler Fishes.svg:

Tiddler Poster.png:

TiddlyWiki Classic.png:

Language Icon: ca-ES:

Language Icon: cs-CZ:

Language Icon: da-DK:

Language Icon: de-AT:

Language Icon: de-DE:

Language Icon: el-GR:

Language Icon: es-ES:

Language Icon: fr-FR:

Language Icon: hi-IN:

Language Icon: ia-IA:

Language Icon: it-IT:

Language Icon: ja-JP:

Language Icon: ko-KR:

Language Icon: nl-NL:

Language Icon: pa-IN:

Language Icon: pt-PT:

Language Icon: ru-RU:

Language Icon: sk-SK:

Language Icon: sv-SE:

Language Icon: zh-Hans:

Language Icon: zh-Hant:

Edición en Castellano:

Chinese (Simplified) Edition: Chinese (Traditional) Edition TiddlyWiki

Chinese (Traditional) Edition: Chinese (Simplified) Edition TiddlyWiki

Édition en Français (France): TiddlyWiki

Deutsch (Österreich) Edition: Deutsch (Deutschland) Edition TiddlyWiki

Deutsch (Deutschland) Edition: Deutsch (Österreich) Edition TiddlyWiki

Korean (Korea Republic) Edition:

LanguageGallery: Icon Language ListWidget TranscludeWidget

Languages: $:/ControlPanel TiddlyWiki Translate TiddlyWiki into your language

Copying tiddlers between TiddlyWiki files: TiddlyWiki

Learning: Reference TiddlyWiki WikiText

changecount Macro: Current Tiddler Macros

colour Macro: $:/palettes/Vanilla Cascading Style Sheets ColourPalettes Macros

contrastcolour Macro: $:/core/ui/TagTemplate Cascading Style Sheets Macros

Core Macros: Macros

csvtiddlers Macro: $:/core/templates/exporters/CsvFile Comma-Separated Values Filters Macros Title Selection

datauri Macro: Base64 Cascading Style Sheets Data URI Macros

dumpvariables Macro: Macros Variables Widgets

jsontiddlers Macro: $:/core/templates/exporters/JsonFile Filters JavaScript Object Notation Macros Title Selection

lingo Macro: Macros

list-links Macro: Cascading Style Sheets Filters Macros Title Selection

makedatauri Macro: ContentType Data URI Macros

now Macro: DateFormat Macros

qualify Macro: Macros StateMechanism Widgets

resolvepath Macro: Macros

Stylesheet Macros: $:/core/macros/CSS Cascading Style Sheets Macros

Table-of-Contents Macros: Filter Expression Filter Step How to add a new tab to the sidebar Order of Tagged Tiddlers SecondThree StateMechanism SystemTiddlers Table-of-Contents Macros (Examples) Tagging TemplateTiddlers

tabs Macro: Cascading Style Sheets Filters Macros StateMechanism SystemTiddlers TemplateTiddlers Title Selection

tag Macro: Current Tiddler Macros

timeline Macro: Date Fields DateFormat Filter Expression Filter Step Macros

version Macro: Macros

colour-picker Macro: Macros

Macro Calls in WikiText (Examples):

changecount Macro (Examples): New Tiddler

colour-picker Macro (Example 1):

colour-picker Macro (Examples):

colour Macro (Examples):

datauri Macro (Examples): WikiText

dumpvariables Macro (Examples):

image-picker Macro (Example 1):

image-picker Macro (Example 2):

image-picker Macro (Examples):

lingo Macro (Examples): DateFormat

list-links Macro (Examples):

makedatauri Macro (Examples):

now Macro (Examples):

qualify Macro (Examples): $:/editions/tw5.com/macro-examples/qualify-transcluded

resolvepath Macro (Examples):

tabs Macro (Examples):

tag Macro (Examples):

thumbnail Macro (Examples):

timeline Macro (Examples):

Table-of-Contents Macros (Examples): TableOfContents

version Macro (Examples):

image-picker Macro: Filter Expression Filter Step Macros

Macro Call Syntax: Filter Whitespace Macros

Macro Definition Syntax: Filter Whitespace Macros

Macro Syntax:

thumbnail Macro: Macros

AlertMechanism: $:/tags/Alert TiddlyWiki

DraftMechanism: ListWidget NavigatorWidget

HistoryMechanism: $:/config/EmptyStoryMessage $:/HistoryList GettingStarted

InfoMechanism: $:/info/browser $:/info/node Node.js WikiText

Mechanisms: TiddlyWiki

PluginMechanism: $:/ControlPanel $:/core/en-GB/readme $:/core/icon $:/core/readme JavaScript Modules Plugins SemanticVersioning ThemeMechanism TiddlyWiki TiddlyWiki5 TiddlyWikiFolders TranscludeWidget

PopupMechanism: ButtonWidget RevealWidget StateMechanism

SavingMechanism: $:/config/SaverFilter $:/core/save/all $:/plugins/tiddlywiki/tiddlyweb $:/plugins/tiddlywiki/tiddlyweb/save/offline ButtonWidget SavingMechanism TiddlyWiki WidgetMessage: tm-save-wiki

StateMechanism: $:/core/ui/PageTemplate $:/InfoPanelState $:/StoryList DraftMechanism NavigationMechanism StateMechanism StateTiddler TiddlyWiki WikiText

TranslationMechanism: $:/language $:/language/Docs/ModuleTypes/isfilteroperator $:/language/EditTemplate/Fields/Add/Value/Placeholder $:/language/EditTemplate/Shadow/OverriddenWarning TiddlyWiki

UpgradeMechanism:

SampleModal:

WidgetMessage: tm-add-field: ButtonWidget FieldManglerWidget

WidgetMessage: tm-add-tag: ButtonWidget FieldManglerWidget

WidgetMessage: tm-auto-save-wiki: SaverModules SyncMechanism TiddlyWiki WidgetMessage: tm-delete-tiddler WidgetMessage: tm-perform-import WidgetMessage: tm-save-tiddler

WidgetMessage: tm-browser-refresh: ButtonWidget

WidgetMessage: tm-cancel-tiddler: ButtonWidget NavigatorWidget

WidgetMessage: tm-clear-password: $:/isEncrypted ButtonWidget EncryptionMechanism

WidgetMessage: tm-close-all-tiddlers: ButtonWidget NavigatorWidget

WidgetMessage: tm-close-other-tiddlers: ButtonWidget NavigatorWidget

WidgetMessage: tm-close-tiddler: ButtonWidget NavigatorWidget

WidgetMessage: tm-delete-tiddler: ButtonWidget NavigatorWidget

WidgetMessage: tm-download-file: ButtonWidget SaverModules SyncMechanism TiddlyWiki

WidgetMessage: tm-edit-bitmap-operation: $:/core/ui/EditorToolbar/size-dropdown ActionWidget ButtonWidget

WidgetMessage: tm-edit-text-operation: $:/core/ui/EditorToolbar/bold ActionWidget ButtonWidget

WidgetMessage: tm-edit-tiddler: ActionSendMessageWidget ButtonWidget NavigatorWidget

WidgetMessage: tm-fold-all-tiddlers: ButtonWidget NavigatorWidget

WidgetMessage: tm-fold-other-tiddlers: ButtonWidget NavigatorWidget

WidgetMessage: tm-fold-tiddler: ButtonWidget NavigatorWidget

WidgetMessage: tm-full-screen: TiddlyWiki

WidgetMessage: tm-home: $:/DefaultTiddlers ButtonWidget PermaLinks

WidgetMessage: tm-import-tiddlers: $:/Import BrowseWidget DropzoneWidget NavigatorWidget UpgradeMechanism

WidgetMessage: tm-load-plugin-from-library: ButtonWidget CodeMirror

WidgetMessage: tm-load-plugin-library: ButtonWidget

WidgetMessage: tm-login: $:/status/IsLoggedIn $:/status/UserName SyncAdaptorModules SyncMechanism TiddlyWiki

WidgetMessage: tm-logout: $:/status/IsLoggedIn $:/status/UserName SyncAdaptorModules SyncMechanism TiddlyWiki

WidgetMessage: tm-modal: ButtonWidget TiddlyWiki

WidgetMessage: tm-navigate: ActionNavigateWidget ButtonWidget LinkWidget NavigatorWidget

WidgetMessage: tm-new-tiddler: ActionSendMessageWidget ButtonWidget NavigatorWidget TaskTemplate

WidgetMessage: tm-notify: TiddlyWiki

WidgetMessage: tm-open-window: ButtonWidget

WidgetMessage: tm-perform-import: $:/Import ButtonWidget NavigatorWidget UpgradeMechanism

WidgetMessage: tm-permalink: ButtonWidget PermaLinks

WidgetMessage: tm-permaview: ButtonWidget PermaLinks

WidgetMessage: tm-remove-field: ButtonWidget FieldManglerWidget

WidgetMessage: tm-remove-tag: ButtonWidget FieldManglerWidget

WidgetMessage: tm-save-tiddler: ButtonWidget NavigatorWidget

WidgetMessage: tm-save-wiki: ButtonWidget SaverModules SyncMechanism TiddlyWiki

WidgetMessage: tm-scroll: ScrollableWidget

WidgetMessage: tm-server-refresh: SyncAdaptorModules SyncMechanism TiddlyWiki

WidgetMessage: tm-set-password: $:/isEncrypted ButtonWidget EncryptionMechanism

WidgetMessage: tm-unfold-all-tiddlers: ButtonWidget NavigatorWidget

Building TiddlyWikiClassic: FieldsWidget JavaScript TiddlyWiki TiddlyWiki on Node.js TiddlyWiki5 TiddlyWikiClassic ViewWidget

Customising Tiddler File Naming: $:/config/FileSystemPaths Filter Syntax task TiddlyWiki on Node.js TiddlyWikiFolders

Environment Variables on Node.js: GitHub InitCommand TiddlyWiki on Node.js TiddlyWiki5

Installing TiddlyWiki Prerelease on Node.js: GitHub npm TiddlyWiki5

Installing TiddlyWiki on Node.js: Node.js TiddlyWiki

Naming of System Tiddlers: JavaScript TiddlyWiki

Scripts for TiddlyWiki on Node.js: LazyLoading Scripts for building tiddlywiki.com TiddlyWiki TiddlyWiki5

Serving TW5 from Android: Installing TiddlyWiki on Node.js TiddlyWiki on Node.js Using TiddlyWiki on Node.js

TiddlyWiki on Node.js: Installing TiddlyWiki on Node.js Node.js TiddlyWiki Upgrading TiddlyWiki on Node.js Using TiddlyWiki on Node.js

TiddlyWiki5 Versioning: TiddlyWiki TiddlyWiki5

Upgrading TiddlyWiki on Node.js: TiddlyWiki on Node.js

Using TiddlyWiki on Node.js: TiddlerFiles TiddlyWiki TiddlyWiki5 TiddlyWikiFiles TiddlyWikiFolders

Working with the TiddlyWiki5 repository: Contributing GitHub Installing TiddlyWiki on Node.js npm Scripts for TiddlyWiki on Node.js TiddlyWiki TiddlyWiki5 Working with the TiddlyWiki5 repository video

Platforms: TiddlyWiki

TiddlyWiki in the Sky for TiddlyWeb: TiddlySpace TiddlyWeb TiddlyWiki

CodeMirror Plugin: CodeMirror TiddlyWiki

D3 Plugin: TiddlyWiki

Highlight Plugin:

Installing a plugin from the plugin library: $:/ControlPanel The First Rule of Using TiddlyWiki TiddlyWiki

KaTeX Plugin:

Manually installing a plugin: $:/plugins/tiddlywiki/example The First Rule of Using TiddlyWiki TiddlyWiki

Markdown Plugin:

Plugin Editions: TiddlyWiki

Plugins: Installing a plugin from the plugin library JavaScript PluginMechanism Resources ShadowTiddlers TiddlyWiki TiddlyWiki5

Railroad Plugin:

TW2Parser Plugin: TiddlyWiki WikiText

Uninstalling a plugin: $:/ControlPanel The First Rule of Using TiddlyWiki TiddlyWiki

ContributingTemplate: TiddlyWiki5

ReadMe: JavaScript TiddlyWiki WikiText

ReadMeBinFolder:

TiddlyWiki2ReadMe: TiddlyWikiClassic

Reference: TiddlyWiki

BetaReleases: TiddlyWiki5 TiddlyWiki5 Versioning

Release 5.1.0: TiddlyWiki

Release 5.1.1: ButtonWidget KaTeX Plugin Release 5.0.17-beta TiddlyWiki

Release 5.1.10: $:/AdvancedSearch $:/ControlPanel ActionListopsWidget ActionSetFieldWidget ActionWidgets Alice in Wonderland Blog Edition days Operator EditTextWidget FieldManglerWidget GitHub Hidden Setting: Keyboard Shortcuts Highlight Plugin How to apply custom styles by tag JavaScript KaTeX KeyboardWidget LazyLoading RenderTiddlerCommand Résumé Builder Edition SaveTiddlersCommand SelectWidget ServerCommand tabs Macro Text-Slicer Edition TiddlerLinks TiddlyWiki TiddlyWikiFolders WikiText

Release 5.1.11: Release 5.1.10

Release 5.1.12: $:/AdvancedSearch ActionWidgets CodeMirror colour-picker Macro Customising Tiddler File Naming days Operator EditShortcutWidget EntityWidget has Operator image-picker Macro KaTeX LinkCatcherWidget ScrollableWidget SelectWidget Table-of-Contents Macros TiddlyWiki Upgrading ViewWidget WebDav WikifyWidget WikiText

Release 5.1.2: KaTeX Plugin TiddlySpot TiddlyWiki

Release 5.1.3: ActionWidgets Audio Creating and editing tiddlers Creating journal tiddlers ImageWidget LaTeX TiddlyWiki

Release 5.1.4: Release 5.1.3 TiddlyWiki ViewWidget

Release 5.1.5: $:/AdvancedSearch $:/ControlPanel $:/core/images/video $:/TagManager ActionDeleteFieldWidget ActionDeleteTiddlerWidget ActionSetFieldWidget CodeMirror Customising search results EditionsCommand EditTextWidget Example Table of Contents: Tabbed Internal ImageGallery Example RevealWidget Table-of-Contents Macros TiddlyWiki TiddlyWikiFolders UnpackPluginCommand WidgetMessage: tm-download-file WidgetMessage: tm-modal WidgetMessage: tm-new-tiddler WidgetMessage: tm-save-wiki

Release 5.1.6: BrowseWidget InitCommand Table-of-Contents Macros TiddlyWiki

Release 5.1.7: GettingStarted Release 5.1.6

Release 5.1.8: $:/AdvancedSearch $:/ControlPanel $:/TagManager CheckboxWidget eachday Operator editiondescription Operator editions Operator Filter Syntax Help Plugin Highlight Plugin ImageGallery Example KaTeX Plugin Railroad Plugin RenderTiddlersCommand resolvepath Macro RevealWidget sameday Operator Setting a page background image TiddlyWiki

Release 5.1.9: $:/ControlPanel ActionSendMessageWidget ButtonWidget CodeMirror Hidden Setting: Search AutoFocus Hidden Setting: Typing Refresh Delay Hidden Settings Releases TiddlyDesktop TiddlyWiki tv-tiddler-preview Variable VarsWidget

ReleaseTemplate:

Releases:

TiddlyWiki Releases: AlphaReleases BetaReleases TiddlyWiki5 TiddlyWiki5 Versioning

AlphaReleases: TiddlyWiki5 TiddlyWiki5 Versioning

Release 5.0.0-alpha.11: BrowseWidget DropzoneWidget EditBitmapWidget EditTextWidget EditWidget ListWidget NavigatorWidget SetVariableWidget TiddlyWiki5 TranscludeWidget ViewWidget

Release 5.0.0-alpha.12: TiddlyWeb TiddlyWiki5

Release 5.0.0-alpha.13: $:/tags/ControlPanel $:/tags/MoreSideBar $:/tags/SideBar $:/tags/TiddlerInfo CodeMirror DaveGifford ViewWidget

Release 5.0.0-alpha.14: $:/ControlPanel CheckboxWidget PasswordWidget

Release 5.0.0-alpha.15: $:/tags/EditTemplate $:/tags/EditToolbar $:/tags/PageControls $:/tags/ViewToolbar TiddlyWeb TranscludeWidget

Release 5.0.0-alpha.16: $:/LeftSideBar $:/TopSideBar Node.js SavingMechanism ServerCommand TiddlySpot TiddlyWiki5 TiddlyWikiFolders WikiText

Release 5.0.0-alpha.17:

Release 5.0.1-alpha: Block Quotes in WikiText GitHub StephanHradek TiddlyWiki5 Versioning Upgrading

Changes to filters in 5.0.9-beta:

Notes for upgrading to 5.0.11-beta: OutputCommand TiddlyWikiFolder

Notes for upgrading to 5.0.8-beta: $:/SiteSubtitle $:/SiteTitle InitCommand SiteSubtitle SiteTitle TiddlyWiki TiddlyWiki on Node.js

Release 5.0.10-beta: DateFormat Images in WikiText ImageWidget SafeMode TiddlyWeb

Release 5.0.11-beta: $:/AdvancedSearch $:/core/ui/PageMacros $:/core/wiki/title BuildCommand ClearPasswordCommand CodeBlockWidget CodeMirror JavaScript Linking in WikiText Notes for upgrading to 5.0.11-beta OutputCommand PermaLinks StartupMechanism The First Rule of Using TiddlyWiki TiddlerFiles TiddlyWiki TiddlyWikiFolders WikiLinks WikiText

Release 5.0.12-beta:

Release 5.0.13-beta: $:/ControlPanel $:/tags/RawMarkup CodeMirror Environment Variables on Node.js ExternalImages HTML in WikiText ImportVariablesWidget LinkWidget Macros in WikiText PermaLinks SaveTiddlersCommand SelectWidget ServerCommand SetFieldCommand TableOfContents TextWidget TiddlyWiki Widgets in WikiText

Release 5.0.14-beta: $:/ControlPanel $:/core/modules/upgraders/plugins.js $:/core/modules/upgraders/system.js $:/core/modules/upgraders/themetweaks.js $:/HistoryList $:/StoryList $:/TagManager BuildCommand CamelCase CheckboxWidget Filter Parameter ImportMechanism InfoMechanism ReleaseHistory SystemTags TiddlerWidget TiddlyWiki TranscludeWidget UpgradeLibrary UpgradePlugin UpgraderModules WidgetMessage: tw-permalink WidgetMessage: tw-permaview

Release 5.0.15-beta: $:/ControlPanel $:/TagManager DropzoneWidget ImageWidget PluginMechanism Startup Modules.svg Table-of-Contents Macros TiddlyWiki WidgetMessage: tw-browser-refresh WidgetMessage: tw-home

Release 5.0.16-beta: Configuring the default TiddlerInfo tab Table-of-Contents Macros TiddlyWiki TiddlyWikiClassic WidgetMessage: tw-browser-refresh

Release 5.0.17-beta: $:/ControlPanel BrowseWidget ButtonWidget ImageWidget LinkWidget RegExp SafeMode Table-of-Contents Macros TiddlyWiki

Release 5.0.18-beta: RadioWidget TiddlyWiki

Release 5.0.2-beta: DavidJade GitHub Hard Linebreaks in WikiText InternetExplorer JavaScript Macros PluginMechanism RadioWidget Saving on InternetExplorer Saving with TiddlyIE StephanHradek TiddlyFox TiddlyWeb

Release 5.0.3-beta:

Release 5.0.4-beta: DavidJade GitHub InternetExplorer RadioWidget SaveTiddlerCommand StephanHradek TiddlyWiki on Node.js TiddlyWikiFolders Using favicons

Release 5.0.5-beta: Setting a favicon

Release 5.0.6-beta: $:/AdvancedSearch DavidJade Formatting in WikiText InternetExplorer ServerCommand StephanHradek Tables in WikiText TiddlerFilters TiddlyWiki on node-webkit

Release 5.0.7-beta: $:/AdvancedSearch $:/ControlPanel $:/DefaultTiddlers $:/plugins/tiddlywiki/nodewebkitsaver GitHub Naming of System Tiddlers node-webkit Saving on a PHP Server ServerCommand TemplateTiddlers TextReference TextWidget TiddlerFilters TiddlyDesktop TiddlyFox TiddlyWiki TiddlyWiki Coding Style Guidelines TiddlyWiki on Firefox for Android Video ViewWidget

Release 5.0.8-beta: $:/AdvancedSearch $:/ControlPanel $:/SiteSubtitle $:/SiteTitle $:/TagManager AlertMechanism AutoSave BramChen ButtonWidget ColourPalettes EditBitmapWidget HelpCommand How to create plugins in the browser InitCommand KeyboardWidget LazyLoading MultiTiddlerFiles Notes for upgrading to 5.0.8-beta RevealWidget SiteSubtitle SiteTitle TiddlerFilter Formal Grammar TiddlerFilters TiddlyWeb TiddlyWiki on Node.js TranscludeWidget TranslationMechanism ViewWidget WidgetMessages

Release 5.0.9-beta: $:/AdvancedSearch $:/ControlPanel $:/TagManager ButtonWidget CecilyView Changes to filters in 5.0.9-beta Community Developing plugins using Node.js and GitHub LinkWidget Making curved text with SVG ScrollableWidget TiddlerFilters TiddlerTags TiddlyWeb TiddlyWiki TiddlyWiki Architecture TiddlyWikiClassic Transclusion in WikiText WidgetMessage: tw-home

RoadMap: GitHub TiddlyWiki

Encryption: ServerCommand Stanford JavaScript Crypto Library TiddlySpot TiddlyWiki TiddlyWiki on Node.js TiddlyWiki5

Saving on Android: AndTidWiki Download TiddlyWiki TiddlyWiki5 TiddlyWikiClassic

Saving on InternetExplorer: InternetExplorer Saving with TiddlyIE TiddlyWiki Windows HTA Hack

Saving on Safari: Download TiddlyWiki

Saving on TiddlySpot: Saving with TiddlyFox TiddlySpot TiddlyWiki TiddlyWiki5 Upgrading

Saving on a PHP Server: TiddlySpot TiddlyWiki

Saving on iPad/iPhone: TiddlyWiki TiddlyWiki5

Saving with TiddlyFox on Android: Download Firefox for Android TiddlyFox TiddlyWiki TiddlyWiki on Firefox for Android Video

Saving with TiddlyFox: Download Firefox Firefox for Android Saving with TiddlyFox on Android TiddlyFox TiddlyWiki

Saving with TiddlyIE: Download TiddlyIE TiddlyWiki

Saving with the HTML5 fallback saver: Download TiddlyWiki

Saving: TiddlyWiki

Documentation Macros: WikiText

Documentation Style Guide: Documentation Macros Instruction Tiddlers Reference Tiddlers Spelling Technical Prose Style Tiddler Structure Tiddler Title Policy Typography

Instruction Tiddlers: Reference Tiddlers

Reference Tiddlers:

Spelling: JavaScript

Technical Prose Style: Instruction Tiddlers

Tiddler Structure: Philosophy of Tiddlers Reference Tiddlers

Tiddler Title Policy: CamelCase Instruction Tiddlers Reference Tiddlers

Typography: Documentation Macros WikiText

TiddlyDesktop Release 0.0.1:

TiddlyDesktop Release 0.0.2: JavaScript TiddlyDesktop TiddlyFox TiddlyWiki TiddlyWiki5

TiddlyDesktop Release 0.0.3: TiddlyDesktop

TiddlyDesktop Release 0.0.4: GitHub TiddlyDesktop TiddlyWiki

TiddlyDesktop Release 0.0.5: GitHub TiddlyWiki

TiddlyDesktop Release 0.0.6: GitHub TiddlyDesktop TiddlyWiki

TiddlyDesktop Release 0.0.7: GitHub TiddlyDesktop TiddlyWiki

TiddlyDesktop Release 0.0.8: GitHub TiddlyWiki

TiddlyDesktop Releases: TiddlyDesktop

Core Variables: Variables

Variables: Core Variables Macros Variables in WikiText Widgets WikiText

currentTiddler Variable: Current Tiddler TemplateTiddlers Variables WikiText

storyTiddler Variable: $:/core/ui/EditTemplate $:/core/ui/PageTemplate/story $:/core/ui/ViewTemplate Variables Widgets

transclusion Variable: Current Tiddler Transclusion Variables Widgets

currentTiddler Variable (Examples):

storyTiddler Variable (Examples):

transclusion Variable (Examples):

tv-config-toolbar-class Variable (Examples): Cascading Style Sheets

tv-config-toolbar-icons Variable (Examples):

tv-config-toolbar-text Variable (Examples):

tv-get-export-image-link Variable (Examples):

tv-wikilink-tooltip Variable (Examples): HelloThere

tv-wikilinks Variable (Examples):

namespace Variable: Document Object Model HyperText Markup Language Variables

tv-auto-open-on-import Variable: $:/Import Variables

tv-config-toolbar-class Variable: Cascading Style Sheets Variables

tv-config-toolbar-icons Variable: Variables

tv-config-toolbar-text Variable: Variables

tv-get-export-image-link Variable: Images in WikiText Macros TiddlyWiki on Node.js Variables

tv-get-export-link Variable: Macros Variables

tv-get-export-path Variable: Percent Encoding TiddlyWiki on Node.js Variables

tv-tiddler-preview Variable: Variables

tv-wikilink-template Variable: Macros Percent Encoding Variables

tv-wikilink-tooltip Variable: Macros Variables WikiText

tv-wikilinks Variable: Variables

Getting Started Video: TiddlyWiki

Introducing TiddlyDesktop Video: TiddlyDesktop

Introduction Video: TiddlyWiki

TiddlyWiki on Firefox for Android Video: TiddlyWiki

Videos: Contributing TiddlyWiki

Working with the TiddlyWiki5 repository video: Working with the TiddlyWiki5 repository

ActionDeleteFieldWidget: ActionWidgets ButtonWidget Current Tiddler HelloThere

ActionDeleteTiddlerWidget: ActionWidgets ButtonWidget HelloThere TableOfContents WidgetMessage: tm-delete-tiddler

ActionListopsWidget: ActionWidgets ButtonWidget Current Tiddler DataTiddlers The Extended Listops Filters

ActionNavigateWidget: ActionWidgets ButtonWidget Current Tiddler WidgetMessage: tm-navigate

ActionSendMessageWidget: ActionWidgets ButtonWidget Messages WidgetMessage: tm-new-tiddler

ActionSetFieldWidget: ActionWidgets ButtonWidget Current Tiddler DataTiddlers HelloThere

ActionWidgets: ButtonWidget

BrowseWidget: JavaScript NavigatorWidget TiddlyWiki WidgetMessage: tm-import-tiddlers

ButtonWidget: Accessibility ActionWidgets Messages PopupMechanism TextReference TiddlerA TiddlerB Transclusion in WikiText

CheckboxWidget: Current Tiddler

CodeBlockWidget: Highlight Plugin

CountWidget: Filters

DropzoneWidget: LinkWidget NavigatorWidget WidgetMessage: tm-import-tiddlers

EditBitmapWidget: $:/config/BitmapEditor/Colour $:/config/BitmapEditor/LineWidth Current Tiddler

EditTextWidget: AppSettings ChangeAppSettings Current Tiddler EditTextWidget GettingStarted ShadowTiddlers TemplateTiddlers

EditWidget: Current Tiddler EditBitmapWidget EditTextWidget

EncryptWidget: BootMechanism EncryptionMechanism PasswordVault TiddlyWiki5

EntityWidget:

FieldMangler Widget (Examples):

FieldManglerWidget: Current Tiddler Messages

FieldsWidget: Current Tiddler FileSavingMechanism TiddlyWiki TiddlyWiki5

ImageWidget: ExternalImages

ImportVariablesWidget: $:/core/ui/PageTemplate Filters ImportVariablesWidget

KeyboardWidget: ActionWidgets Messages

LinkCatcherWidget: Messages WidgetMessage: tm-navigate

LinkWidget: Accessibility Current Tiddler HelloThere WikiText

ListWidget: DraftMechanism Filters HistoryMechanism ListWidget NestedLists TiddlyWiki5 Variables

ListopsData:

MacroCallWidget: $:/snippets/allfields $:/snippets/modules $:/themes/tiddlywiki/starlight/styles.tid ContentType

NavigatorWidget: Messages

PasswordWidget: PasswordVault TiddlyWiki5

RadioWidget: Current Tiddler

RevealWidget: PopupMechanism RevealWidget StateTiddlers TextReference

ScrollableWidget: $:/_tw5.com-styles WidgetMessage: tm-scroll

SelectWidget: $:/SiteTitle ActionWidgets DataTiddlers ListWidget TableOfContents

SetVariableWidget: SetWidget

SetWidget: Variables

TextWidget:

The Extended Listops Filters: DaysOfTheWeek

TiddlerWidget: $:/core/ui/ViewTemplate $:/tags/Macro Current Tiddler How to apply custom styles by tag TiddlerWidget

TranscludeWidget: $:/DefaultTiddlers DataTiddlers Plugins SubTiddler TiddlyWiki TranscludeWidget

VarsWidget: SetWidget

ViewWidget: $:/DefaultTiddlers Current Tiddler DateFormat JavaScript Plugins SubTiddler

Widgets: HTML in WikiText Widgets in WikiText WikiText

WikifyWidget: ContentType Variables

Block Quotes in WikiText: Lists in WikiText TiddlyWiki5

Code Blocks in WikiText:

Dashes in WikiText:

Definitions in WikiText:

Formatting in WikiText: Code Blocks in WikiText

HTML in WikiText: MyLinkDestination TiddlyWiki WikiText

Hard Linebreaks in WikiText: Paragraphs in WikiText

Headings in WikiText:

Horizontal Rules in WikiText:

Images in WikiText: ImageWidget WikiText

Linking in WikiText: CamelCase LinkWidget WikiText

Lists in WikiText: Block Quotes in WikiText

Macro Calls in WikiText: Macro Call Syntax Macro Calls in WikiText (Examples) Macros Transclusion Variables

Macro Definitions in WikiText: Macro Definition Syntax Macros Pragma Title Selection Variables

Macros in WikiText: Macro Calls in WikiText Macro Definitions in WikiText Macros WikiText

Paragraphs in WikiText: Hard Linebreaks in WikiText TiddlyWiki

Styles and Classes in WikiText:

Tables in WikiText: TiddlyWiki5

Transclusion Basic Usage: TextReference TiddlerA TiddlerB TiddlerFields TiddlyWiki Transclusion Transclusion in WikiText Transclusion with Templates

Transclusion and Substitution: HTML in WikiText Introduction to Filters Macros in WikiText Transclusion in WikiText WikiText

Transclusion in WikiText: Current Tiddler DataTiddlers Filters TemplateTiddlers TextReference TiddlerWidget TranscludeWidget Transclusion Transclusion and Substitution Transclusion Basic Usage Transclusion with Templates WikiText

Transclusion with Templates: Current Tiddler Styles and Classes in WikiText TemplateTiddlers TextReference TranscludeWidget Transclusion Basic Usage Transclusion in WikiText

Typed Blocks in WikiText: ContentType WikiText

Variables in WikiText: Filter Operators Filter Parameter ImportVariablesWidget Macro Calls in WikiText Macro Definitions in WikiText Macros Macros in WikiText Variables Widgets in WikiText

Widgets in WikiText: HTML in WikiText WikiText

Audio: Caruso - Ave Maria Images in WikiText TiddlyWiki TiddlyWiki.mp3

BrowserCompatibility: TiddlyWiki

Creating and editing tiddlers: AutoSave blue italics ContentType Creating journal tiddlers ListField WikiText

Creating journal tiddlers: $:/ControlPanel DateFormat InfoPanel

Formatting text in TiddlyWiki: CamelCase HelloThere History of TiddlyWiki TiddlyWiki WikiText

Navigating between open tiddlers:

Performance: ExternalImages TiddlyWiki

Sharing your tiddlers with others: How to export tiddlers ImportTiddlers PermaLinks PermaView Sharing a TiddlyWiki on Dropbox

Using links to navigate between tiddlers: Filters InfoPanel Linking in WikiText ListField ListWidget ShadowTiddlers SystemTiddlers Transclusion in WikiText

Working with TiddlyWiki: TiddlyWiki

search Operator

3rd February 2015 at 7:10pm
purposefilter the input by searching tiddler content
inputa selection of titles
suffixF = optionally, the name of a field
parameterone or more search terms, separated by spaces
outputthose input tiddlers in which all of the search terms can be found in the value of field F
! outputthose input tiddlers in which not all of the search terms can be so found

When used with a suffix, the search operator is similar to regexp but less powerful.

If the suffix is omitted, a tiddler is deemed to match if all the search terms appear in the combination of its tags, text and title fields.

The search ignores the difference between capital and lowercase letters.

Examples

search Operator (Examples)

24th January 2015 at 11:02am

[!is[system]search[table]]
→ non-system tiddlers containing the word "table"
[all[shadows]search[table]]
→ shadow tiddlers containing the word "table"
[search:caption[arch]]
→ tiddlers containing arch in their caption field

Searching in TiddlyWiki

7th June 2016 at 5:30pm

Searching is fast and flexible in TiddlyWiki.

Standard search

Typing text into the search box in the sidebar will turn up a list of all the tiddlers that contain that text.

(Note that the sidebar tabs will be hidden by the search results until you click the 'x' to the right of the search box to remove the search results)

Advanced searching

Clicking on the magnifying glass icon to the right of the search box will open $:/AdvancedSearch. This tiddler contains four tabs:

  • The standard tab contains another instance of the search box found in the sidebar
  • The system tab allows you to limit your search to system tiddlers
  • The shadows tab allows you to limit your search to shadow tiddlers
  • The filter tab is not a search box, per se, but a way to obtain a list of all tiddlers that meet the specific criteria described by that filter, for example, "All tags except system tags"

Second

21st February 2015 at 7:46pm

This is an example tiddler. See Table-of-Contents Macros (Examples).

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

SecondOne

21st February 2015 at 7:46pm

This is an example tiddler. See Table-of-Contents Macros (Examples).

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

SecondThree

21st February 2015 at 7:46pm

This is an example tiddler. See Table-of-Contents Macros (Examples).

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

SecondThreeOne

21st February 2015 at 7:46pm

This is an example tiddler. See Table-of-Contents Macros (Examples).

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

SecondThreeThree

21st February 2015 at 7:46pm

This is an example tiddler. See Table-of-Contents Macros (Examples).

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

SecondThreeTwo

21st February 2015 at 7:46pm

This is an example tiddler. See Table-of-Contents Macros (Examples).

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

SecondTwo

21st February 2015 at 7:46pm

This is an example tiddler. See Table-of-Contents Macros (Examples).

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

SeeAlso by Matias Goldman

30th April 2015 at 4:43pm

A simple technique for adding tag-based cross references to the default view template.

http://seealso.tiddlyspot.com

See also: - is a feature to generate a "See also:" section after the tiddler text, somewhat like in Wikipedia articles.

Selection Constructors

17th September 2015 at 8:37pm

The output of a filter step depends on its operator:

  • Most operators derive their output from their input. For example, many of them output a subset of their input, and thus truly live up to the name of "filters", narrowing down the overall output of the containing run. These operators are called selection modifiers.
  • A few operators ignore their input and generate an independent output instead. These are called selection constructors: they construct an entirely new selection.

A good example of a constructor is title. The output of [title[A]title[B]] is just B. But the field operator is a modifier, so [title[A]field:title[B] outputs nothing at all.

SelectWidget

29th April 2016 at 6:52pm

Introduction

The select widget displays a popup menu based on a HTML select element. The popup (or dropdown) contains a list of items defined by <option> and <optgroup> elements. Every time the user selects a new value in the menu, the selected value is written to the text of a specified tiddler field or index and any ActionWidgets within the actions attribute are triggered. Conversely, if the tiddler value is changed independently the select widget is automatically updated to reflect the new value.

In multiple selection mode, the list of selected values is bound to the specified tiddler field or index. Browsers generally use the ctrl or cmd keys for multiple selection.

For example, this select widget displays a list of the tags in this wiki:

<$select tiddler=<<qualify 'select-demo'>> default='HelloThere'>
<$list filter='[all[shadows+tiddlers]tags[]sort[title]]'>
<option value=<<currentTiddler>>><$view field='title'/></option>
</$list>
</$select>

That renders as:

The state tiddler currently contains:

See the text change as you switch entries in the select widget. Try changing the value of the state tiddler and see the select widget change. Notice how the select widget only displays an entry if there is a precise match with the tiddler text.

Content and Attributes

The content of the <$select> widget should be one or more HTML <option> or <optiongroup> elements that provide the available values.

AttributeDescription
tiddlerThe title of the tiddler containing the value to be displayed/modified by the select widget (defaults to the current tiddler)
fieldThe field name for the value in the current tiddler (defaults to "text")
indexThe index of a property in a DataTiddler (takes precedence over the field attribute)
classCSS classes to be assigned to the HTML select element
defaultDefault value to be used if the tiddler, field or index specifies a missing value
multipleIf present, switches to multiple selection mode
sizeThe number of rows to display in multiple selection mode
actionsA string containing ActionWidgets to be triggered when the key combination is detected

Examples

Simple Lists

This example sets the title of the current wiki $:/SiteTitle to one of a list of book titles:

<$select tiddler='$:/SiteTitle'>
<option>A Tale of Two Cities</option>
<option>A New Kind of Science</option>
<option>The Dice Man</option>
</$select>

That renders as:

Value lists

In this example the value attribute has been used to specify the text that should be used as the value of the entry instead of the display text.

<$select tiddler='$:/SiteTitle'>
<option value='cities'>A Tale of Two Cities</option>
<option value='science'>A New Kind of Science</option>
<option value='dice'>The Dice Man</option>
</$select>

That renders as:

Option Groups

Entries in the list can be grouped together with the <optgroup> element

<$select tiddler='$:/SiteTitle'>
<optgroup label='Fiction'>
<option value='cities'>A Tale of Two Cities</option>
<option value='dice'>The Dice Man</option>
</optgroup>
<optgroup label='Non-fiction'>
<option value='science'>A New Kind of Science</option>
<option value='recursive'>The Recursive Universe</option>
</optgroup>
</$select>

That renders as:

Generated Lists

The ListWidget can be used to generate the options for a select widget. For example, here we combine a select widget listing all the tiddlers tagged TableOfContents with a transclusion to display the text of the selected one.

<$select tiddler='$:/generated-list-demo-state'>
<$list filter='[tag[TableOfContents]]'>
<option><$view field='title'/></option>
</$list>
</$select>
<$tiddler tiddler={{$:/generated-list-demo-state}}>
<$transclude mode='block'/>
</$tiddler>

That renders as:

Nested Lists

This example uses a nested pair of list widgets. The outer one generates the <optgroup> elements, and the inner one generates <option> elements:

<$select tiddler='$:/generated-list-demo-nestedstate' field='type' default='text/vnd.tiddlywiki'>
<$list filter='[all[shadows+tiddlers]prefix[$:/language/Docs/Types/]each[group]sort[group]]'>
<optgroup label={{!!group}}>
<$list filter='[all[shadows+tiddlers]prefix[$:/language/Docs/Types/]group{!!group}] +[sort[description]]'>
<option value={{!!name}}><$view field='description'><$view field='title'/></$view> (<$view field='name'/>)</option>
</$list>
</optgroup>
</$list>
</$select>

That renders as:

Multiple Selections

This example uses the multiple keyword to specify that we should be able to select multiple items.

<$select tiddler='$:/generated-list-demo-state' field='testing' multiple size='8'>
<$list filter='[tag[TableOfContents]]'>
<option><$view field='title'/></option>
</$list>
</$select><br />
<$list filter='[list[$:/generated-list-demo-state!!testing]]'>
<$view field='title' /><br />
</$list>

That renders as:


ServerCommand

29th December 2013 at 1:05pm

The server built in to TiddlyWiki5 is very simple. Although compatible with TiddlyWeb it doesn't support many of the features needed for robust Internet-facing usage.

At the root, it serves a rendering of a specified tiddler. Away from the root, it serves individual tiddlers encoded in JSON, and supports the basic HTTP operations for GET, PUT and DELETE.

--server <port> <roottiddler> <rendertype> <servetype> <username> <password> <host> <pathprefix>

The parameters are:

  • port - port number to serve from (defaults to "8080")
  • roottiddler - the tiddler to serve at the root (defaults to "$:/core/save/all")
  • rendertype - the content type to which the root tiddler should be rendered (defaults to "text/plain")
  • servetype - the content type with which the root tiddler should be served (defaults to "text/html")
  • username - the default username for signing edits
  • password - optional password for basic authentication
  • host - optional hostname to serve from (defaults to "127.0.0.1" aka "localhost")
  • pathprefix - optional prefix for paths

If the password parameter is specified then the browser will prompt the user for the username and password. Note that the password is transmitted in plain text so this implementation isn't suitable for general use.

For example:

--server 8080 $:/core/save/all text/plain text/html MyUserName passw0rd

The username and password can be specified as empty strings if you need to set the hostname or pathprefix and don't want to require a password:

--server 8080 $:/core/save/all text/plain text/html "" "" 192.168.0.245

To run multiple TiddlyWiki servers at the same time you'll need to put each one on a different port.

Serving TW5 from Android

2nd June 2016 at 5:35am

Termux is an open source Android application that combines a Linux system and a terminal.

Once you open Termux on your Android system, it is straightforward to install and run the Node.js flavour of TiddlyWiki from the command line.

From then on, as long as Termux is not closed, you may access your wiki anytime from your favourite Web browser pointing on the expected address and port.

note to contributors: in Termux, you may as well install git, emacs or vi, in order to edit and maintain individual tiddler files. This would probably require that you also attach a more powerful keyboard to your Android, like the Hacker's Keyboard application or a Bluetooth external device.

SetFieldCommand

9th June 2014 at 1:16pm

Note that this command is experimental and may change or be replaced before being finalised

Sets the specified field of a group of tiddlers to the result of wikifying a template tiddler with the currentTiddler variable set to the tiddler.

--setfield <filter> <fieldname> <templatetitle> <rendertype>

The parameters are:

  • filter - filter identifying the tiddlers to be affected
  • fieldname - the field to modify (defaults to "text")
  • templatetitle - the tiddler to wikify into the specified field. If blank or missing then the specified field is deleted
  • rendertype - the text type to render (defaults to "text/plain"; "text/html" can be used to include HTML tags)

Setting a favicon

12th September 2014 at 3:22pm

"favicons" are small icons that most browsers display to help users identify websites.

favicons in the Browser

When TiddlyWiki starts up in the browser it looks for a tiddler called $:/favicon.ico and dynamically uses it as the favicon for the page. If you modify the image then the favicon changes instantly to reflect it.

favicons on the Server

On the server, the ServerCommand will serve the tiddler $:/favicon.ico at the path /favicon.ico.

Setting a page background image

10th June 2016 at 9:27am
  1. Import your image as a tiddler (see Images in WikiText)
  2. Open the control panel and switch to the Appearance/Theme Tweaks tab
  3. Select your image from the dropdown labelled "Page background image"
  4. Set "Page background image attachment" to "Fixed to window" to have the background stay stationary and the content to scroll over the top of it, or "Scroll with tiddlers" to have it move (note that the iPhone/iPad doesn't support the fixed setting for performance reasons)
  5. Set "Page background image size" as follows:
    • Auto causes the background image to be tiled over the page background
    • Cover causes the background image to be sized so that it completely covers the page. Some of the image may be clipped
    • Contain causes the background image to be sized so that it fits within the page

Note that the palette DarkPhotos is provided to make the sidebar more readable on dark background images.

SetVariableWidget

25th October 2014 at 12:56pm

The <$setvariable> widget is a synonym for <$set/>; see SetWidget for more details.

SetWidget

20th February 2015 at 4:22pm

Introduction

The set variable widget assigns a value to a specified variable. The new value of the variable is available to the content within the set variable widget.

Content and Attributes

The content of the <$set> widget is the scope for the value assigned to the variable.

AttributeDescription
nameThe name of the variable to assign (defaults to "currentTiddler")
valueThe value to assign to the variable if the filter is missing or not empty
filterAn optional filter to be evaluated and assigned to the variable (see below)
emptyValueThe value to assign to the variable if the filter is present and evaluates to an empty list (see below)

Simple Variable Assignment

The simplest way of using set variable widget assigns a string to a variable. The following example assigns a literal string

<$set name="myVariable" value="Some text">
<$text text=<<myVariable>>/>
</$set>

Both the name and value attributes can be transcluded. For example:

<$set name=<<anotherVariable>> value={{template!!text}}>
<$text text=<<myVariable>>/>
</$set>

Conditional Variable Assignment

This form of the set variable widget chooses one of two specified values according to whether a filter evaluates to an empty list. Here's an example that sets a variable according to whether the current tiddler is called "myMagicTitle":

<$set name="myVariable" filter="[all[current]field:title[myMagicTitle]]" value="It's magic" emptyValue="It's not magic">
<$text text=<<myVariable>>/>
</$set>

Filtered List Variable Assignment

This form of the set variable widget evaluates the filter and assigns the result to the variable as a space-separated list (using double square brackets for titles containing spaces).

<$set name="myVariable" filter="[tag[HelloThere]]">
<$text text=<<myVariable>>/>
</$set>

shadowsource Operator

3rd February 2015 at 7:11pm
purposeselect the plugin titles that contain the input shadows
inputa selection of shadow titles
parameternone
outputthe plugins that contain the input tiddlers

Each input title is processed in turn. If it denotes a shadow tiddler, the title of its plugin tiddler is dominantly appended to the output. Non-shadow tiddlers contribute nothing to the output.

Examples

shadowsource Operator (Examples)

24th January 2015 at 9:07pm

[[$:/core/copyright.txt]shadowsource[]]

$:/core/copyright.txt $:/plugins/tiddlywiki/railroad/parser.js +[shadowsource[]]

ShadowTiddlers

9th August 2013 at 5:23pm

ShadowTiddlers are tiddlers that are loaded from within Plugins. Unlike ordinary tiddlers, they don't appear in most lists.

ShadowTiddlers can be overridden with an ordinary tiddler of the same name. If that tiddler is subsequently deleted then the original shadow tiddler is automatically restored.

The current shadow tiddlers are:

$:/Acknowledgements
$:/AdvancedSearch
$:/config/AnimationDuration
$:/config/AutoSave
$:/config/BitmapEditor/Colour
$:/config/BitmapEditor/ImageSizes
$:/config/BitmapEditor/LineWidth
$:/config/BitmapEditor/LineWidths
$:/config/BitmapEditor/Opacities
$:/config/BitmapEditor/Opacity
$:/config/DefaultSidebarTab
$:/config/Drafts/TypingTimeout
$:/config/EditorToolbarButtons/Visibility/$:/core/ui/EditorToolbar/heading-4
$:/config/EditorToolbarButtons/Visibility/$:/core/ui/EditorToolbar/heading-5
$:/config/EditorToolbarButtons/Visibility/$:/core/ui/EditorToolbar/heading-6
$:/config/EditorTypeMappings/image/gif
$:/config/EditorTypeMappings/image/jpeg
$:/config/EditorTypeMappings/image/jpg
$:/config/EditorTypeMappings/image/png
$:/config/EditorTypeMappings/image/x-icon
$:/config/EditorTypeMappings/text/vnd.tiddlywiki
$:/config/EditTemplateFields/Visibility/bag
$:/config/EditTemplateFields/Visibility/created
$:/config/EditTemplateFields/Visibility/creator
$:/config/EditTemplateFields/Visibility/draft.of
$:/config/EditTemplateFields/Visibility/draft.title
$:/config/EditTemplateFields/Visibility/modified
$:/config/EditTemplateFields/Visibility/modifier
$:/config/EditTemplateFields/Visibility/revision
$:/config/EditTemplateFields/Visibility/tags
$:/config/EditTemplateFields/Visibility/text
$:/config/EditTemplateFields/Visibility/title
$:/config/EditTemplateFields/Visibility/type
$:/config/MissingLinks
$:/config/Navigation/openLinkFromInsideRiver
$:/config/Navigation/openLinkFromOutsideRiver
$:/config/Navigation/UpdateAddressBar
$:/config/Navigation/UpdateHistory
$:/config/NewJournal/Tags
$:/config/NewJournal/Title
$:/config/OfficialPluginLibrary
$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/advanced-search
$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/close-all
$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/encryption
$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/export-page
$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/fold-all
$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/full-screen
$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/home
$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/import
$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/language
$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/more-page-actions
$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/new-image
$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/new-journal
$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/palette
$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/permaview
$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/refresh
$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/storyview
$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/tag-manager
$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/theme
$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/unfold-all
$:/config/Performance/Instrumentation
$:/config/SaverFilter
$:/config/SaveWikiButton/Template
$:/config/Search/AutoFocus
$:/config/SearchResults/Default
$:/config/ShortcutInfo/bold
$:/config/ShortcutInfo/cancel-edit-tiddler
$:/config/ShortcutInfo/excise
$:/config/ShortcutInfo/heading-1
$:/config/ShortcutInfo/heading-2
$:/config/ShortcutInfo/heading-3
$:/config/ShortcutInfo/heading-4
$:/config/ShortcutInfo/heading-5
$:/config/ShortcutInfo/heading-6
$:/config/ShortcutInfo/italic
$:/config/ShortcutInfo/link
$:/config/ShortcutInfo/list-bullet
$:/config/ShortcutInfo/list-number
$:/config/ShortcutInfo/mono-block
$:/config/ShortcutInfo/mono-line
$:/config/ShortcutInfo/picture
$:/config/ShortcutInfo/preview
$:/config/ShortcutInfo/quote
$:/config/ShortcutInfo/save-tiddler
$:/config/ShortcutInfo/stamp
$:/config/ShortcutInfo/strikethrough
$:/config/ShortcutInfo/subscript
$:/config/ShortcutInfo/superscript
$:/config/ShortcutInfo/underline
$:/config/shortcuts-mac/bold
$:/config/shortcuts-mac/italic
$:/config/shortcuts-mac/underline
$:/config/shortcuts-not-mac/bold
$:/config/shortcuts-not-mac/italic
$:/config/shortcuts-not-mac/underline
$:/config/shortcuts/cancel-edit-tiddler
$:/config/shortcuts/excise
$:/config/shortcuts/heading-1
$:/config/shortcuts/heading-2
$:/config/shortcuts/heading-3
$:/config/shortcuts/heading-4
$:/config/shortcuts/heading-5
$:/config/shortcuts/heading-6
$:/config/shortcuts/link
$:/config/shortcuts/list-bullet
$:/config/shortcuts/list-number
$:/config/shortcuts/mono-block
$:/config/shortcuts/mono-line
$:/config/shortcuts/picture
$:/config/shortcuts/preview
$:/config/shortcuts/quote
$:/config/shortcuts/save-tiddler
$:/config/shortcuts/stamp
$:/config/shortcuts/strikethrough
$:/config/shortcuts/subscript
$:/config/shortcuts/superscript
$:/config/SyncFilter
$:/config/TextEditor/EditorHeight/Height
$:/config/TextEditor/EditorHeight/Mode
$:/config/TiddlerInfo/Default
$:/config/Tiddlers/TitleLinks
$:/config/Toolbar/ButtonClass
$:/config/Toolbar/Icons
$:/config/Toolbar/Text
$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/clone
$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/close-others
$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/delete
$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/export-tiddler
$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/fold
$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/fold-bar
$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/fold-others
$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/info
$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/more-tiddler-actions
$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/new-here
$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/new-journal-here
$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/open-window
$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/permalink
$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/permaview
$:/config/WikiParserRules/Inline/wikilink
$:/ControlPanel
$:/core/buttonstyles/Borderless
$:/core/buttonstyles/Boxed
$:/core/buttonstyles/Rounded
$:/core/copyright.txt
$:/core/Filters/AllTags
$:/core/Filters/AllTiddlers
$:/core/Filters/Drafts
$:/core/Filters/Missing
$:/core/Filters/Orphans
$:/core/Filters/OverriddenShadowTiddlers
$:/core/Filters/RecentSystemTiddlers
$:/core/Filters/RecentTiddlers
$:/core/Filters/ShadowTiddlers
$:/core/Filters/SystemTags
$:/core/Filters/SystemTiddlers
$:/core/Filters/TypedTiddlers
$:/core/icon
$:/core/images/advanced-search-button
$:/core/images/auto-height
$:/core/images/blank
$:/core/images/bold
$:/core/images/cancel-button
$:/core/images/chevron-down
$:/core/images/chevron-left
$:/core/images/chevron-right
$:/core/images/chevron-up
$:/core/images/clone-button
$:/core/images/close-all-button
$:/core/images/close-button
$:/core/images/close-others-button
$:/core/images/delete-button
$:/core/images/done-button
$:/core/images/down-arrow
$:/core/images/download-button
$:/core/images/edit-button
$:/core/images/erase
$:/core/images/excise
$:/core/images/export-button
$:/core/images/file
$:/core/images/fixed-height
$:/core/images/fold-all-button
$:/core/images/fold-button
$:/core/images/fold-others-button
$:/core/images/folder
$:/core/images/full-screen-button
$:/core/images/github
$:/core/images/globe
$:/core/images/heading-1
$:/core/images/heading-2
$:/core/images/heading-3
$:/core/images/heading-4
$:/core/images/heading-5
$:/core/images/heading-6
$:/core/images/help
$:/core/images/home-button
$:/core/images/import-button
$:/core/images/info-button
$:/core/images/italic
$:/core/images/left-arrow
$:/core/images/line-width
$:/core/images/link
$:/core/images/list-bullet
$:/core/images/list-number
$:/core/images/locked-padlock
$:/core/images/mail
$:/core/images/menu-button
$:/core/images/mono-block
$:/core/images/mono-line
$:/core/images/new-button
$:/core/images/new-here-button
$:/core/images/new-image-button
$:/core/images/new-journal-button
$:/core/images/opacity
$:/core/images/open-window
$:/core/images/options-button
$:/core/images/paint
$:/core/images/palette
$:/core/images/permalink-button
$:/core/images/permaview-button
$:/core/images/picture
$:/core/images/plugin-generic-language
$:/core/images/plugin-generic-plugin
$:/core/images/plugin-generic-theme
$:/core/images/preview-closed
$:/core/images/preview-open
$:/core/images/quote
$:/core/images/refresh-button
$:/core/images/right-arrow
$:/core/images/save-button
$:/core/images/size
$:/core/images/spiral
$:/core/images/stamp
$:/core/images/star-filled
$:/core/images/storyview-classic
$:/core/images/storyview-pop
$:/core/images/storyview-zoomin
$:/core/images/strikethrough
$:/core/images/subscript
$:/core/images/superscript
$:/core/images/tag-button
$:/core/images/theme-button
$:/core/images/tip
$:/core/images/twitter
$:/core/images/underline
$:/core/images/unfold-all-button
$:/core/images/unfold-button
$:/core/images/unlocked-padlock
$:/core/images/up-arrow
$:/core/images/video
$:/core/images/warning
$:/core/macros/colour-picker
$:/core/macros/CSS
$:/core/macros/export
$:/core/macros/image-picker
$:/core/macros/lingo
$:/core/macros/list
$:/core/macros/tabs
$:/core/macros/tag
$:/core/macros/thumbnails
$:/core/macros/timeline
$:/core/macros/toc
$:/core/macros/translink
$:/core/modules/browser-messaging.js
$:/core/modules/commander.js
$:/core/modules/commands/build.js
$:/core/modules/commands/clearpassword.js
$:/core/modules/commands/editions.js
$:/core/modules/commands/help.js
$:/core/modules/commands/init.js
$:/core/modules/commands/load.js
$:/core/modules/commands/makelibrary.js
$:/core/modules/commands/output.js
$:/core/modules/commands/password.js
$:/core/modules/commands/rendertiddler.js
$:/core/modules/commands/rendertiddlers.js
$:/core/modules/commands/savelibrarytiddlers.js
$:/core/modules/commands/savetiddler.js
$:/core/modules/commands/savetiddlers.js
$:/core/modules/commands/server.js
$:/core/modules/commands/setfield.js
$:/core/modules/commands/unpackplugin.js
$:/core/modules/commands/verbose.js
$:/core/modules/commands/version.js
$:/core/modules/config.js
$:/core/modules/deserializers.js
$:/core/modules/editor/engines/framed.js
$:/core/modules/editor/engines/simple.js
$:/core/modules/editor/factory.js
$:/core/modules/editor/operations/bitmap/clear.js
$:/core/modules/editor/operations/bitmap/resize.js
$:/core/modules/editor/operations/text/excise.js
$:/core/modules/editor/operations/text/make-link.js
$:/core/modules/editor/operations/text/prefix-lines.js
$:/core/modules/editor/operations/text/replace-all.js
$:/core/modules/editor/operations/text/replace-selection.js
$:/core/modules/editor/operations/text/wrap-lines.js
$:/core/modules/editor/operations/text/wrap-selection.js
$:/core/modules/filters.js
$:/core/modules/filters/addprefix.js
$:/core/modules/filters/addsuffix.js
$:/core/modules/filters/after.js
$:/core/modules/filters/all.js
$:/core/modules/filters/all/current.js
$:/core/modules/filters/all/missing.js
$:/core/modules/filters/all/orphans.js
$:/core/modules/filters/all/shadows.js
$:/core/modules/filters/all/tiddlers.js
$:/core/modules/filters/backlinks.js
$:/core/modules/filters/before.js
$:/core/modules/filters/commands.js
$:/core/modules/filters/days.js
$:/core/modules/filters/each.js
$:/core/modules/filters/eachday.js
$:/core/modules/filters/editiondescription.js
$:/core/modules/filters/editions.js
$:/core/modules/filters/field.js
$:/core/modules/filters/fields.js
$:/core/modules/filters/get.js
$:/core/modules/filters/getindex.js
$:/core/modules/filters/has.js
$:/core/modules/filters/haschanged.js
$:/core/modules/filters/indexes.js
$:/core/modules/filters/is.js
$:/core/modules/filters/is/current.js
$:/core/modules/filters/is/image.js
$:/core/modules/filters/is/missing.js
$:/core/modules/filters/is/orphan.js
$:/core/modules/filters/is/shadow.js
$:/core/modules/filters/is/system.js
$:/core/modules/filters/is/tag.js
$:/core/modules/filters/is/tiddler.js
$:/core/modules/filters/limit.js
$:/core/modules/filters/links.js
$:/core/modules/filters/list.js
$:/core/modules/filters/listed.js
$:/core/modules/filters/listops.js
$:/core/modules/filters/modules.js
$:/core/modules/filters/moduletypes.js
$:/core/modules/filters/next.js
$:/core/modules/filters/plugintiddlers.js
$:/core/modules/filters/prefix.js
$:/core/modules/filters/previous.js
$:/core/modules/filters/regexp.js
$:/core/modules/filters/removeprefix.js
$:/core/modules/filters/removesuffix.js
$:/core/modules/filters/sameday.js
$:/core/modules/filters/search.js
$:/core/modules/filters/shadowsource.js
$:/core/modules/filters/sort.js
$:/core/modules/filters/splitbefore.js
$:/core/modules/filters/storyviews.js
$:/core/modules/filters/suffix.js
$:/core/modules/filters/tag.js
$:/core/modules/filters/tagging.js
$:/core/modules/filters/tags.js
$:/core/modules/filters/title.js
$:/core/modules/filters/untagged.js
$:/core/modules/filters/wikiparserrules.js
$:/core/modules/filters/x-listops.js
$:/core/modules/info/platform.js
$:/core/modules/keyboard.js
$:/core/modules/language.js
$:/core/modules/macros/changecount.js
$:/core/modules/macros/contrastcolour.js
$:/core/modules/macros/csvtiddlers.js
$:/core/modules/macros/displayshortcuts.js
$:/core/modules/macros/dumpvariables.js
$:/core/modules/macros/jsontiddlers.js
$:/core/modules/macros/makedatauri.js
$:/core/modules/macros/now.js
$:/core/modules/macros/qualify.js
$:/core/modules/macros/resolvepath.js
$:/core/modules/macros/version.js
$:/core/modules/parsers/audioparser.js
$:/core/modules/parsers/csvparser.js
$:/core/modules/parsers/htmlparser.js
$:/core/modules/parsers/imageparser.js
$:/core/modules/parsers/textparser.js
$:/core/modules/parsers/videoparser.js
$:/core/modules/parsers/wikiparser/rules/codeblock.js
$:/core/modules/parsers/wikiparser/rules/codeinline.js
$:/core/modules/parsers/wikiparser/rules/commentblock.js
$:/core/modules/parsers/wikiparser/rules/commentinline.js
$:/core/modules/parsers/wikiparser/rules/dash.js
$:/core/modules/parsers/wikiparser/rules/emphasis/bold.js
$:/core/modules/parsers/wikiparser/rules/emphasis/italic.js
$:/core/modules/parsers/wikiparser/rules/emphasis/strikethrough.js
$:/core/modules/parsers/wikiparser/rules/emphasis/subscript.js
$:/core/modules/parsers/wikiparser/rules/emphasis/superscript.js
$:/core/modules/parsers/wikiparser/rules/emphasis/underscore.js
$:/core/modules/parsers/wikiparser/rules/entity.js
$:/core/modules/parsers/wikiparser/rules/extlink.js
$:/core/modules/parsers/wikiparser/rules/filteredtranscludeblock.js
$:/core/modules/parsers/wikiparser/rules/filteredtranscludeinline.js
$:/core/modules/parsers/wikiparser/rules/hardlinebreaks.js
$:/core/modules/parsers/wikiparser/rules/heading.js
$:/core/modules/parsers/wikiparser/rules/horizrule.js
$:/core/modules/parsers/wikiparser/rules/html.js
$:/core/modules/parsers/wikiparser/rules/image.js
$:/core/modules/parsers/wikiparser/rules/list.js
$:/core/modules/parsers/wikiparser/rules/macrocallblock.js
$:/core/modules/parsers/wikiparser/rules/macrocallinline.js
$:/core/modules/parsers/wikiparser/rules/macrodef.js
$:/core/modules/parsers/wikiparser/rules/prettyextlink.js
$:/core/modules/parsers/wikiparser/rules/prettylink.js
$:/core/modules/parsers/wikiparser/rules/quoteblock.js
$:/core/modules/parsers/wikiparser/rules/rules.js
$:/core/modules/parsers/wikiparser/rules/styleblock.js
$:/core/modules/parsers/wikiparser/rules/styleinline.js
$:/core/modules/parsers/wikiparser/rules/syslink.js
$:/core/modules/parsers/wikiparser/rules/table.js
$:/core/modules/parsers/wikiparser/rules/transcludeblock.js
$:/core/modules/parsers/wikiparser/rules/transcludeinline.js
$:/core/modules/parsers/wikiparser/rules/typedblock.js
$:/core/modules/parsers/wikiparser/rules/wikilink.js
$:/core/modules/parsers/wikiparser/rules/wikirulebase.js
$:/core/modules/parsers/wikiparser/wikiparser.js
$:/core/modules/pluginswitcher.js
$:/core/modules/saver-handler.js
$:/core/modules/savers/andtidwiki.js
$:/core/modules/savers/download.js
$:/core/modules/savers/fsosaver.js
$:/core/modules/savers/manualdownload.js
$:/core/modules/savers/msdownload.js
$:/core/modules/savers/nodewebkit.js
$:/core/modules/savers/put.js
$:/core/modules/savers/tiddlyfox.js
$:/core/modules/savers/tiddlyie.js
$:/core/modules/savers/twedit.js
$:/core/modules/savers/upload.js
$:/core/modules/startup.js
$:/core/modules/startup/commands.js
$:/core/modules/startup/favicon.js
$:/core/modules/startup/info.js
$:/core/modules/startup/load-modules.js
$:/core/modules/startup/password.js
$:/core/modules/startup/render.js
$:/core/modules/startup/rootwidget.js
$:/core/modules/startup/story.js
$:/core/modules/startup/windows.js
$:/core/modules/story.js
$:/core/modules/storyviews/classic.js
$:/core/modules/storyviews/pop.js
$:/core/modules/storyviews/zoomin.js
$:/core/modules/syncer.js
$:/core/modules/tiddler.js
$:/core/modules/upgraders/plugins.js
$:/core/modules/upgraders/system.js
$:/core/modules/upgraders/themetweaks.js
$:/core/modules/utils/crypto.js
$:/core/modules/utils/dom.js
$:/core/modules/utils/dom/animations/slide.js
$:/core/modules/utils/dom/animator.js
$:/core/modules/utils/dom/browser.js
$:/core/modules/utils/dom/csscolorparser.js
$:/core/modules/utils/dom/http.js
$:/core/modules/utils/dom/keyboard.js
$:/core/modules/utils/dom/modal.js
$:/core/modules/utils/dom/notifier.js
$:/core/modules/utils/dom/popup.js
$:/core/modules/utils/dom/scroller.js
$:/core/modules/utils/edition-info.js
$:/core/modules/utils/fakedom.js
$:/core/modules/utils/filesystem.js
$:/core/modules/utils/logger.js
$:/core/modules/utils/parsetree.js
$:/core/modules/utils/parseutils.js
$:/core/modules/utils/performance.js
$:/core/modules/utils/pluginmaker.js
$:/core/modules/utils/utils.js
$:/core/modules/widgets/action-deletefield.js
$:/core/modules/widgets/action-deletetiddler.js
$:/core/modules/widgets/action-listops.js
$:/core/modules/widgets/action-navigate.js
$:/core/modules/widgets/action-sendmessage.js
$:/core/modules/widgets/action-setfield.js
$:/core/modules/widgets/browse.js
$:/core/modules/widgets/button.js
$:/core/modules/widgets/checkbox.js
$:/core/modules/widgets/codeblock.js
$:/core/modules/widgets/count.js
$:/core/modules/widgets/dropzone.js
$:/core/modules/widgets/edit-binary.js
$:/core/modules/widgets/edit-bitmap.js
$:/core/modules/widgets/edit-shortcut.js
$:/core/modules/widgets/edit-text.js
$:/core/modules/widgets/edit.js
$:/core/modules/widgets/element.js
$:/core/modules/widgets/encrypt.js
$:/core/modules/widgets/entity.js
$:/core/modules/widgets/fieldmangler.js
$:/core/modules/widgets/fields.js
$:/core/modules/widgets/image.js
$:/core/modules/widgets/importvariables.js
$:/core/modules/widgets/keyboard.js
$:/core/modules/widgets/link.js
$:/core/modules/widgets/linkcatcher.js
$:/core/modules/widgets/list.js
$:/core/modules/widgets/macrocall.js
$:/core/modules/widgets/navigator.js
$:/core/modules/widgets/password.js
$:/core/modules/widgets/radio.js
$:/core/modules/widgets/raw.js
$:/core/modules/widgets/reveal.js
$:/core/modules/widgets/scrollable.js
$:/core/modules/widgets/select.js
$:/core/modules/widgets/set.js
$:/core/modules/widgets/text.js
$:/core/modules/widgets/tiddler.js
$:/core/modules/widgets/transclude.js
$:/core/modules/widgets/vars.js
$:/core/modules/widgets/view.js
$:/core/modules/widgets/widget.js
$:/core/modules/widgets/wikify.js
$:/core/modules/wiki-bulkops.js
$:/core/modules/wiki.js
$:/core/readme
$:/core/save/all
$:/core/save/empty
$:/core/save/lazy-all
$:/core/save/lazy-images
$:/core/templates/alltiddlers.template.html
$:/core/templates/canonical-uri-external-image
$:/core/templates/canonical-uri-external-text
$:/core/templates/css-tiddler
$:/core/templates/exporters/CsvFile
$:/core/templates/exporters/JsonFile
$:/core/templates/exporters/StaticRiver
$:/core/templates/exporters/StaticRiver/Content
$:/core/templates/exporters/TidFile
$:/core/templates/html-div-tiddler
$:/core/templates/html-tiddler
$:/core/templates/javascript-tiddler
$:/core/templates/module-tiddler
$:/core/templates/MOTW.html
$:/core/templates/plain-text-tiddler
$:/core/templates/raw-static-tiddler
$:/core/templates/single.tiddler.window
$:/core/templates/split-recipe
$:/core/templates/static-tiddler
$:/core/templates/static.area
$:/core/templates/static.content
$:/core/templates/static.template.css
$:/core/templates/static.template.html
$:/core/templates/static.tiddler.html
$:/core/templates/store.area.template.html
$:/core/templates/tid-tiddler
$:/core/templates/tiddler-metadata
$:/core/templates/tiddlywiki5.html
$:/core/templates/version
$:/core/templates/wikified-tiddler
$:/core/ui/AboveStory/tw2-plugin-check
$:/core/ui/AdvancedSearch/Filter
$:/core/ui/AdvancedSearch/Filter/FilterButtons/clear
$:/core/ui/AdvancedSearch/Filter/FilterButtons/delete
$:/core/ui/AdvancedSearch/Filter/FilterButtons/dropdown
$:/core/ui/AdvancedSearch/Filter/FilterButtons/export
$:/core/ui/AdvancedSearch/Shadows
$:/core/ui/AdvancedSearch/Standard
$:/core/ui/AdvancedSearch/System
$:/core/ui/AlertTemplate
$:/core/ui/BinaryWarning
$:/core/ui/Buttons/advanced-search
$:/core/ui/Buttons/cancel
$:/core/ui/Buttons/clone
$:/core/ui/Buttons/close
$:/core/ui/Buttons/close-all
$:/core/ui/Buttons/close-others
$:/core/ui/Buttons/control-panel
$:/core/ui/Buttons/delete
$:/core/ui/Buttons/edit
$:/core/ui/Buttons/encryption
$:/core/ui/Buttons/export-page
$:/core/ui/Buttons/export-tiddler
$:/core/ui/Buttons/fold
$:/core/ui/Buttons/fold-all
$:/core/ui/Buttons/fold-bar
$:/core/ui/Buttons/fold-others
$:/core/ui/Buttons/full-screen
$:/core/ui/Buttons/home
$:/core/ui/Buttons/import
$:/core/ui/Buttons/info
$:/core/ui/Buttons/language
$:/core/ui/Buttons/more-page-actions
$:/core/ui/Buttons/more-tiddler-actions
$:/core/ui/Buttons/new-here
$:/core/ui/Buttons/new-image
$:/core/ui/Buttons/new-journal
$:/core/ui/Buttons/new-journal-here
$:/core/ui/Buttons/new-tiddler
$:/core/ui/Buttons/open-window
$:/core/ui/Buttons/palette
$:/core/ui/Buttons/permalink
$:/core/ui/Buttons/permaview
$:/core/ui/Buttons/refresh
$:/core/ui/Buttons/save
$:/core/ui/Buttons/save-wiki
$:/core/ui/Buttons/storyview
$:/core/ui/Buttons/tag-manager
$:/core/ui/Buttons/theme
$:/core/ui/Buttons/unfold-all
$:/core/ui/Components/tag-link
$:/core/ui/ControlPanel/Advanced
$:/core/ui/ControlPanel/Appearance
$:/core/ui/ControlPanel/Basics
$:/core/ui/ControlPanel/EditorTypes
$:/core/ui/ControlPanel/Info
$:/core/ui/ControlPanel/KeyboardShortcuts
$:/core/ui/ControlPanel/LoadedModules
$:/core/ui/ControlPanel/Modals/AddPlugins
$:/core/ui/ControlPanel/Palette
$:/core/ui/ControlPanel/Parsing
$:/core/ui/ControlPanel/Plugins
$:/core/ui/ControlPanel/Plugins/Add/Languages
$:/core/ui/ControlPanel/Plugins/Add/Plugins
$:/core/ui/ControlPanel/Plugins/Add/Themes
$:/core/ui/ControlPanel/Plugins/AddPlugins
$:/core/ui/ControlPanel/Plugins/Installed/Languages
$:/core/ui/ControlPanel/Plugins/Installed/Plugins
$:/core/ui/ControlPanel/Plugins/Installed/Themes
$:/core/ui/ControlPanel/Saving
$:/core/ui/ControlPanel/Settings
$:/core/ui/ControlPanel/Settings/AutoSave
$:/core/ui/ControlPanel/Settings/CamelCase
$:/core/ui/ControlPanel/Settings/DefaultSidebarTab
$:/core/ui/ControlPanel/Settings/EditorToolbar
$:/core/ui/ControlPanel/Settings/LinkToBehaviour
$:/core/ui/ControlPanel/Settings/MissingLinks
$:/core/ui/ControlPanel/Settings/NavigationAddressBar
$:/core/ui/ControlPanel/Settings/NavigationHistory
$:/core/ui/ControlPanel/Settings/PerformanceInstrumentation
$:/core/ui/ControlPanel/Settings/TitleLinks
$:/core/ui/ControlPanel/Settings/ToolbarButtons
$:/core/ui/ControlPanel/Settings/ToolbarButtonStyle
$:/core/ui/ControlPanel/StoryView
$:/core/ui/ControlPanel/Theme
$:/core/ui/ControlPanel/TiddlerFields
$:/core/ui/ControlPanel/Toolbars
$:/core/ui/ControlPanel/Toolbars/EditorToolbar
$:/core/ui/ControlPanel/Toolbars/EditToolbar
$:/core/ui/ControlPanel/Toolbars/PageControls
$:/core/ui/ControlPanel/Toolbars/ViewToolbar
$:/core/ui/DefaultSearchResultList
$:/core/ui/EditorToolbar/bold
$:/core/ui/EditorToolbar/clear
$:/core/ui/EditorToolbar/clear-dropdown
$:/core/ui/EditorToolbar/editor-height
$:/core/ui/EditorToolbar/editor-height-dropdown
$:/core/ui/EditorToolbar/excise
$:/core/ui/EditorToolbar/excise-dropdown
$:/core/ui/EditorToolbar/heading-1
$:/core/ui/EditorToolbar/heading-2
$:/core/ui/EditorToolbar/heading-3
$:/core/ui/EditorToolbar/heading-4
$:/core/ui/EditorToolbar/heading-5
$:/core/ui/EditorToolbar/heading-6
$:/core/ui/EditorToolbar/italic
$:/core/ui/EditorToolbar/line-width
$:/core/ui/EditorToolbar/line-width-dropdown
$:/core/ui/EditorToolbar/link
$:/core/ui/EditorToolbar/link-dropdown
$:/core/ui/EditorToolbar/list-bullet
$:/core/ui/EditorToolbar/list-number
$:/core/ui/EditorToolbar/mono-block
$:/core/ui/EditorToolbar/mono-line
$:/core/ui/EditorToolbar/more
$:/core/ui/EditorToolbar/more-dropdown
$:/core/ui/EditorToolbar/opacity
$:/core/ui/EditorToolbar/opacity-dropdown
$:/core/ui/EditorToolbar/paint
$:/core/ui/EditorToolbar/paint-dropdown
$:/core/ui/EditorToolbar/picture
$:/core/ui/EditorToolbar/picture-dropdown
$:/core/ui/EditorToolbar/preview
$:/core/ui/EditorToolbar/preview-type
$:/core/ui/EditorToolbar/preview-type-dropdown
$:/core/ui/EditorToolbar/quote
$:/core/ui/EditorToolbar/size
$:/core/ui/EditorToolbar/size-dropdown
$:/core/ui/EditorToolbar/stamp
$:/core/ui/EditorToolbar/stamp-dropdown
$:/core/ui/EditorToolbar/strikethrough
$:/core/ui/EditorToolbar/subscript
$:/core/ui/EditorToolbar/superscript
$:/core/ui/EditorToolbar/underline
$:/core/ui/EditTemplate
$:/core/ui/EditTemplate/body
$:/core/ui/EditTemplate/body/editor
$:/core/ui/EditTemplate/body/preview/output
$:/core/ui/EditTemplate/body/toolbar/button
$:/core/ui/EditTemplate/controls
$:/core/ui/EditTemplate/fields
$:/core/ui/EditTemplate/shadow
$:/core/ui/EditTemplate/tags
$:/core/ui/EditTemplate/title
$:/core/ui/EditTemplate/type
$:/core/ui/ImportListing
$:/core/ui/ListItemTemplate
$:/core/ui/MissingTemplate
$:/core/ui/MoreSideBar/All
$:/core/ui/MoreSideBar/Drafts
$:/core/ui/MoreSideBar/Missing
$:/core/ui/MoreSideBar/Orphans
$:/core/ui/MoreSideBar/Recent
$:/core/ui/MoreSideBar/Shadows
$:/core/ui/MoreSideBar/System
$:/core/ui/MoreSideBar/Tags
$:/core/ui/MoreSideBar/Types
$:/core/ui/PageStylesheet
$:/core/ui/PageTemplate
$:/core/ui/PageTemplate/alerts
$:/core/ui/PageTemplate/pagecontrols
$:/core/ui/PageTemplate/pluginreloadwarning
$:/core/ui/PageTemplate/sidebar
$:/core/ui/PageTemplate/story
$:/core/ui/PageTemplate/topleftbar
$:/core/ui/PageTemplate/toprightbar
$:/core/ui/PluginInfo
$:/core/ui/SearchResults
$:/core/ui/SideBar/More
$:/core/ui/SideBar/Open
$:/core/ui/SideBar/Recent
$:/core/ui/SideBar/Tools
$:/core/ui/SideBarLists
$:/core/ui/TagTemplate
$:/core/ui/TiddlerFields
$:/core/ui/TiddlerFieldTemplate
$:/core/ui/TiddlerInfo
$:/core/ui/TiddlerInfo/Advanced
$:/core/ui/TiddlerInfo/Advanced/PluginInfo
$:/core/ui/TiddlerInfo/Advanced/ShadowInfo
$:/core/ui/TiddlerInfo/Fields
$:/core/ui/TiddlerInfo/List
$:/core/ui/TiddlerInfo/Listed
$:/core/ui/TiddlerInfo/References
$:/core/ui/TiddlerInfo/Tagging
$:/core/ui/TiddlerInfo/Tools
$:/core/ui/TopBar/menu
$:/core/ui/UntaggedTemplate
$:/core/ui/ViewTemplate
$:/core/ui/ViewTemplate/body
$:/core/ui/ViewTemplate/classic
$:/core/ui/ViewTemplate/import
$:/core/ui/ViewTemplate/plugin
$:/core/ui/ViewTemplate/subtitle
$:/core/ui/ViewTemplate/tags
$:/core/ui/ViewTemplate/title
$:/core/ui/ViewTemplate/unfold
$:/core/wiki/title
$:/DefaultTiddlers
$:/info/browser
$:/info/node
$:/language
$:/language/AboveStory/ClassicPlugin/Warning
$:/language/BinaryWarning/Prompt
$:/language/Buttons/AdvancedSearch/Caption
$:/language/Buttons/AdvancedSearch/Hint
$:/language/Buttons/Bold/Caption
$:/language/Buttons/Bold/Hint
$:/language/Buttons/Cancel/Caption
$:/language/Buttons/Cancel/Hint
$:/language/Buttons/Clear/Caption
$:/language/Buttons/Clear/Hint
$:/language/Buttons/Clone/Caption
$:/language/Buttons/Clone/Hint
$:/language/Buttons/Close/Caption
$:/language/Buttons/Close/Hint
$:/language/Buttons/CloseAll/Caption
$:/language/Buttons/CloseAll/Hint
$:/language/Buttons/CloseOthers/Caption
$:/language/Buttons/CloseOthers/Hint
$:/language/Buttons/ControlPanel/Caption
$:/language/Buttons/ControlPanel/Hint
$:/language/Buttons/Delete/Caption
$:/language/Buttons/Delete/Hint
$:/language/Buttons/Edit/Caption
$:/language/Buttons/Edit/Hint
$:/language/Buttons/EditorHeight/Caption
$:/language/Buttons/EditorHeight/Caption/Auto
$:/language/Buttons/EditorHeight/Caption/Fixed
$:/language/Buttons/EditorHeight/Hint
$:/language/Buttons/Encryption/Caption
$:/language/Buttons/Encryption/ClearPassword/Caption
$:/language/Buttons/Encryption/ClearPassword/Hint
$:/language/Buttons/Encryption/Hint
$:/language/Buttons/Encryption/SetPassword/Caption
$:/language/Buttons/Encryption/SetPassword/Hint
$:/language/Buttons/Excise/Caption
$:/language/Buttons/Excise/Caption/Excise
$:/language/Buttons/Excise/Caption/MacroName
$:/language/Buttons/Excise/Caption/NewTitle
$:/language/Buttons/Excise/Caption/Replace
$:/language/Buttons/Excise/Caption/Replace/Link
$:/language/Buttons/Excise/Caption/Replace/Macro
$:/language/Buttons/Excise/Caption/Replace/Transclusion
$:/language/Buttons/Excise/Caption/Tag
$:/language/Buttons/Excise/Caption/TiddlerExists
$:/language/Buttons/Excise/Hint
$:/language/Buttons/ExportPage/Caption
$:/language/Buttons/ExportPage/Hint
$:/language/Buttons/ExportTiddler/Caption
$:/language/Buttons/ExportTiddler/Hint
$:/language/Buttons/ExportTiddlers/Caption
$:/language/Buttons/ExportTiddlers/Hint
$:/language/Buttons/Fold/Caption
$:/language/Buttons/Fold/FoldBar/Caption
$:/language/Buttons/Fold/FoldBar/Hint
$:/language/Buttons/Fold/Hint
$:/language/Buttons/FoldAll/Caption
$:/language/Buttons/FoldAll/Hint
$:/language/Buttons/FoldOthers/Caption
$:/language/Buttons/FoldOthers/Hint
$:/language/Buttons/FullScreen/Caption
$:/language/Buttons/FullScreen/Hint
$:/language/Buttons/Heading1/Caption
$:/language/Buttons/Heading1/Hint
$:/language/Buttons/Heading2/Caption
$:/language/Buttons/Heading2/Hint
$:/language/Buttons/Heading3/Caption
$:/language/Buttons/Heading3/Hint
$:/language/Buttons/Heading4/Caption
$:/language/Buttons/Heading4/Hint
$:/language/Buttons/Heading5/Caption
$:/language/Buttons/Heading5/Hint
$:/language/Buttons/Heading6/Caption
$:/language/Buttons/Heading6/Hint
$:/language/Buttons/Help/Caption
$:/language/Buttons/Help/Hint
$:/language/Buttons/HideSideBar/Caption
$:/language/Buttons/HideSideBar/Hint
$:/language/Buttons/Home/Caption
$:/language/Buttons/Home/Hint
$:/language/Buttons/Import/Caption
$:/language/Buttons/Import/Hint
$:/language/Buttons/Info/Caption
$:/language/Buttons/Info/Hint
$:/language/Buttons/Italic/Caption
$:/language/Buttons/Italic/Hint
$:/language/Buttons/Language/Caption
$:/language/Buttons/Language/Hint
$:/language/Buttons/LineWidth/Caption
$:/language/Buttons/LineWidth/Hint
$:/language/Buttons/Link/Caption
$:/language/Buttons/Link/Hint
$:/language/Buttons/ListBullet/Caption
$:/language/Buttons/ListBullet/Hint
$:/language/Buttons/ListNumber/Caption
$:/language/Buttons/ListNumber/Hint
$:/language/Buttons/MonoBlock/Caption
$:/language/Buttons/MonoBlock/Hint
$:/language/Buttons/MonoLine/Caption
$:/language/Buttons/MonoLine/Hint
$:/language/Buttons/More/Caption
$:/language/Buttons/More/Hint
$:/language/Buttons/NewHere/Caption
$:/language/Buttons/NewHere/Hint
$:/language/Buttons/NewImage/Caption
$:/language/Buttons/NewImage/Hint
$:/language/Buttons/NewJournal/Caption
$:/language/Buttons/NewJournal/Hint
$:/language/Buttons/NewJournalHere/Caption
$:/language/Buttons/NewJournalHere/Hint
$:/language/Buttons/NewMarkdown/Caption
$:/language/Buttons/NewMarkdown/Hint
$:/language/Buttons/NewTiddler/Caption
$:/language/Buttons/NewTiddler/Hint
$:/language/Buttons/Opacity/Caption
$:/language/Buttons/Opacity/Hint
$:/language/Buttons/OpenWindow/Caption
$:/language/Buttons/OpenWindow/Hint
$:/language/Buttons/Paint/Caption
$:/language/Buttons/Paint/Hint
$:/language/Buttons/Palette/Caption
$:/language/Buttons/Palette/Hint
$:/language/Buttons/Permalink/Caption
$:/language/Buttons/Permalink/Hint
$:/language/Buttons/Permaview/Caption
$:/language/Buttons/Permaview/Hint
$:/language/Buttons/Picture/Caption
$:/language/Buttons/Picture/Hint
$:/language/Buttons/Preview/Caption
$:/language/Buttons/Preview/Hint
$:/language/Buttons/PreviewType/Caption
$:/language/Buttons/PreviewType/Hint
$:/language/Buttons/Quote/Caption
$:/language/Buttons/Quote/Hint
$:/language/Buttons/Refresh/Caption
$:/language/Buttons/Refresh/Hint
$:/language/Buttons/Save/Caption
$:/language/Buttons/Save/Hint
$:/language/Buttons/SaveWiki/Caption
$:/language/Buttons/SaveWiki/Hint
$:/language/Buttons/ShowSideBar/Caption
$:/language/Buttons/ShowSideBar/Hint
$:/language/Buttons/Size/Caption
$:/language/Buttons/Size/Caption/Height
$:/language/Buttons/Size/Caption/Resize
$:/language/Buttons/Size/Caption/Width
$:/language/Buttons/Size/Hint
$:/language/Buttons/Stamp/Caption
$:/language/Buttons/Stamp/Caption/New
$:/language/Buttons/Stamp/Hint
$:/language/Buttons/Stamp/New/Text
$:/language/Buttons/Stamp/New/Title
$:/language/Buttons/StoryView/Caption
$:/language/Buttons/StoryView/Hint
$:/language/Buttons/Strikethrough/Caption
$:/language/Buttons/Strikethrough/Hint
$:/language/Buttons/Subscript/Caption
$:/language/Buttons/Subscript/Hint
$:/language/Buttons/Superscript/Caption
$:/language/Buttons/Superscript/Hint
$:/language/Buttons/TagManager/Caption
$:/language/Buttons/TagManager/Hint
$:/language/Buttons/Theme/Caption
$:/language/Buttons/Theme/Hint
$:/language/Buttons/Underline/Caption
$:/language/Buttons/Underline/Hint
$:/language/Buttons/Unfold/Caption
$:/language/Buttons/Unfold/Hint
$:/language/Buttons/UnfoldAll/Caption
$:/language/Buttons/UnfoldAll/Hint
$:/language/ClassicWarning/Hint
$:/language/ClassicWarning/Upgrade/Caption
$:/language/CloseAll/Button
$:/language/ColourPicker/Recent
$:/language/ConfirmCancelTiddler
$:/language/ConfirmDeleteTiddler
$:/language/ConfirmEditShadowTiddler
$:/language/ConfirmOverwriteTiddler
$:/language/ControlPanel/Advanced/Caption
$:/language/ControlPanel/Advanced/Hint
$:/language/ControlPanel/Appearance/Caption
$:/language/ControlPanel/Appearance/Hint
$:/language/ControlPanel/Basics/AnimDuration/Prompt
$:/language/ControlPanel/Basics/Caption
$:/language/ControlPanel/Basics/DefaultTiddlers/BottomHint
$:/language/ControlPanel/Basics/DefaultTiddlers/Prompt
$:/language/ControlPanel/Basics/DefaultTiddlers/TopHint
$:/language/ControlPanel/Basics/Language/Prompt
$:/language/ControlPanel/Basics/NewJournal/Tags/Prompt
$:/language/ControlPanel/Basics/NewJournal/Title/Prompt
$:/language/ControlPanel/Basics/OverriddenShadowTiddlers/Prompt
$:/language/ControlPanel/Basics/ShadowTiddlers/Prompt
$:/language/ControlPanel/Basics/Subtitle/Prompt
$:/language/ControlPanel/Basics/SystemTiddlers/Prompt
$:/language/ControlPanel/Basics/Tags/Prompt
$:/language/ControlPanel/Basics/Tiddlers/Prompt
$:/language/ControlPanel/Basics/Title/Prompt
$:/language/ControlPanel/Basics/Username/Prompt
$:/language/ControlPanel/Basics/Version/Prompt
$:/language/ControlPanel/EditorTypes/Caption
$:/language/ControlPanel/EditorTypes/Editor/Caption
$:/language/ControlPanel/EditorTypes/Hint
$:/language/ControlPanel/EditorTypes/Type/Caption
$:/language/ControlPanel/Info/Caption
$:/language/ControlPanel/Info/Hint
$:/language/ControlPanel/KeyboardShortcuts/Add/Caption
$:/language/ControlPanel/KeyboardShortcuts/Add/Prompt
$:/language/ControlPanel/KeyboardShortcuts/Caption
$:/language/ControlPanel/KeyboardShortcuts/Hint
$:/language/ControlPanel/KeyboardShortcuts/NoShortcuts/Caption
$:/language/ControlPanel/KeyboardShortcuts/Platform/All
$:/language/ControlPanel/KeyboardShortcuts/Platform/Linux
$:/language/ControlPanel/KeyboardShortcuts/Platform/Mac
$:/language/ControlPanel/KeyboardShortcuts/Platform/NonLinux
$:/language/ControlPanel/KeyboardShortcuts/Platform/NonMac
$:/language/ControlPanel/KeyboardShortcuts/Platform/NonWindows
$:/language/ControlPanel/KeyboardShortcuts/Platform/Windows
$:/language/ControlPanel/KeyboardShortcuts/Remove/Hint
$:/language/ControlPanel/LoadedModules/Caption
$:/language/ControlPanel/LoadedModules/Hint
$:/language/ControlPanel/Palette/Caption
$:/language/ControlPanel/Palette/Editor/Clone/Caption
$:/language/ControlPanel/Palette/Editor/Clone/Prompt
$:/language/ControlPanel/Palette/Editor/Prompt
$:/language/ControlPanel/Palette/Editor/Prompt/Modified
$:/language/ControlPanel/Palette/Editor/Reset/Caption
$:/language/ControlPanel/Palette/HideEditor/Caption
$:/language/ControlPanel/Palette/Prompt
$:/language/ControlPanel/Palette/ShowEditor/Caption
$:/language/ControlPanel/Parsing/Block/Caption
$:/language/ControlPanel/Parsing/Caption
$:/language/ControlPanel/Parsing/Hint
$:/language/ControlPanel/Parsing/Inline/Caption
$:/language/ControlPanel/Parsing/Pragma/Caption
$:/language/ControlPanel/Plugins/Add/Caption
$:/language/ControlPanel/Plugins/Add/Hint
$:/language/ControlPanel/Plugins/AlreadyInstalled/Hint
$:/language/ControlPanel/Plugins/Caption
$:/language/ControlPanel/Plugins/Disable/Caption
$:/language/ControlPanel/Plugins/Disable/Hint
$:/language/ControlPanel/Plugins/Disabled/Status
$:/language/ControlPanel/Plugins/Empty/Hint
$:/language/ControlPanel/Plugins/Enable/Caption
$:/language/ControlPanel/Plugins/Enable/Hint
$:/language/ControlPanel/Plugins/Install/Caption
$:/language/ControlPanel/Plugins/Installed/Hint
$:/language/ControlPanel/Plugins/Languages/Caption
$:/language/ControlPanel/Plugins/Languages/Hint
$:/language/ControlPanel/Plugins/NoInfoFound/Hint
$:/language/ControlPanel/Plugins/NoInformation/Hint
$:/language/ControlPanel/Plugins/NotInstalled/Hint
$:/language/ControlPanel/Plugins/OpenPluginLibrary
$:/language/ControlPanel/Plugins/Plugins/Caption
$:/language/ControlPanel/Plugins/Plugins/Hint
$:/language/ControlPanel/Plugins/Reinstall/Caption
$:/language/ControlPanel/Plugins/Themes/Caption
$:/language/ControlPanel/Plugins/Themes/Hint
$:/language/ControlPanel/Saving/Caption
$:/language/ControlPanel/Saving/Heading
$:/language/ControlPanel/Saving/TiddlySpot/Advanced/Heading
$:/language/ControlPanel/Saving/TiddlySpot/BackupDir
$:/language/ControlPanel/Saving/TiddlySpot/Backups
$:/language/ControlPanel/Saving/TiddlySpot/Description
$:/language/ControlPanel/Saving/TiddlySpot/Filename
$:/language/ControlPanel/Saving/TiddlySpot/Heading
$:/language/ControlPanel/Saving/TiddlySpot/Hint
$:/language/ControlPanel/Saving/TiddlySpot/Password
$:/language/ControlPanel/Saving/TiddlySpot/ServerURL
$:/language/ControlPanel/Saving/TiddlySpot/UploadDir
$:/language/ControlPanel/Saving/TiddlySpot/UserName
$:/language/ControlPanel/Settings/AutoSave/Caption
$:/language/ControlPanel/Settings/AutoSave/Disabled/Description
$:/language/ControlPanel/Settings/AutoSave/Enabled/Description
$:/language/ControlPanel/Settings/AutoSave/Hint
$:/language/ControlPanel/Settings/CamelCase/Caption
$:/language/ControlPanel/Settings/CamelCase/Description
$:/language/ControlPanel/Settings/CamelCase/Hint
$:/language/ControlPanel/Settings/Caption
$:/language/ControlPanel/Settings/DefaultSidebarTab/Caption
$:/language/ControlPanel/Settings/DefaultSidebarTab/Hint
$:/language/ControlPanel/Settings/EditorToolbar/Caption
$:/language/ControlPanel/Settings/EditorToolbar/Description
$:/language/ControlPanel/Settings/EditorToolbar/Hint
$:/language/ControlPanel/Settings/Hint
$:/language/ControlPanel/Settings/LinkToBehaviour/Caption
$:/language/ControlPanel/Settings/LinkToBehaviour/InsideRiver/Hint
$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAbove
$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAtBottom
$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAtTop
$:/language/ControlPanel/Settings/LinkToBehaviour/OpenBelow
$:/language/ControlPanel/Settings/LinkToBehaviour/OutsideRiver/Hint
$:/language/ControlPanel/Settings/MissingLinks/Caption
$:/language/ControlPanel/Settings/MissingLinks/Description
$:/language/ControlPanel/Settings/MissingLinks/Hint
$:/language/ControlPanel/Settings/NavigationAddressBar/Caption
$:/language/ControlPanel/Settings/NavigationAddressBar/Hint
$:/language/ControlPanel/Settings/NavigationAddressBar/No/Description
$:/language/ControlPanel/Settings/NavigationAddressBar/Permalink/Description
$:/language/ControlPanel/Settings/NavigationAddressBar/Permaview/Description
$:/language/ControlPanel/Settings/NavigationHistory/Caption
$:/language/ControlPanel/Settings/NavigationHistory/Hint
$:/language/ControlPanel/Settings/NavigationHistory/No/Description
$:/language/ControlPanel/Settings/NavigationHistory/Yes/Description
$:/language/ControlPanel/Settings/PerformanceInstrumentation/Caption
$:/language/ControlPanel/Settings/PerformanceInstrumentation/Description
$:/language/ControlPanel/Settings/PerformanceInstrumentation/Hint
$:/language/ControlPanel/Settings/TitleLinks/Caption
$:/language/ControlPanel/Settings/TitleLinks/Hint
$:/language/ControlPanel/Settings/TitleLinks/No/Description
$:/language/ControlPanel/Settings/TitleLinks/Yes/Description
$:/language/ControlPanel/Settings/ToolbarButtons/Caption
$:/language/ControlPanel/Settings/ToolbarButtons/Hint
$:/language/ControlPanel/Settings/ToolbarButtons/Icons/Description
$:/language/ControlPanel/Settings/ToolbarButtons/Text/Description
$:/language/ControlPanel/Settings/ToolbarButtonStyle/Caption
$:/language/ControlPanel/Settings/ToolbarButtonStyle/Hint
$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Borderless
$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Boxed
$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Rounded
$:/language/ControlPanel/StoryView/Caption
$:/language/ControlPanel/StoryView/Prompt
$:/language/ControlPanel/Theme/Caption
$:/language/ControlPanel/Theme/Prompt
$:/language/ControlPanel/TiddlerFields/Caption
$:/language/ControlPanel/TiddlerFields/Hint
$:/language/ControlPanel/Toolbars/Caption
$:/language/ControlPanel/Toolbars/EditorToolbar/Caption
$:/language/ControlPanel/Toolbars/EditorToolbar/Hint
$:/language/ControlPanel/Toolbars/EditToolbar/Caption
$:/language/ControlPanel/Toolbars/EditToolbar/Hint
$:/language/ControlPanel/Toolbars/Hint
$:/language/ControlPanel/Toolbars/PageControls/Caption
$:/language/ControlPanel/Toolbars/PageControls/Hint
$:/language/ControlPanel/Toolbars/ViewToolbar/Caption
$:/language/ControlPanel/Toolbars/ViewToolbar/Hint
$:/language/ControlPanel/Tools/Download/Full/Caption
$:/language/Count
$:/language/Date/DaySuffix/1
$:/language/Date/DaySuffix/10
$:/language/Date/DaySuffix/11
$:/language/Date/DaySuffix/12
$:/language/Date/DaySuffix/13
$:/language/Date/DaySuffix/14
$:/language/Date/DaySuffix/15
$:/language/Date/DaySuffix/16
$:/language/Date/DaySuffix/17
$:/language/Date/DaySuffix/18
$:/language/Date/DaySuffix/19
$:/language/Date/DaySuffix/2
$:/language/Date/DaySuffix/20
$:/language/Date/DaySuffix/21
$:/language/Date/DaySuffix/22
$:/language/Date/DaySuffix/23
$:/language/Date/DaySuffix/24
$:/language/Date/DaySuffix/25
$:/language/Date/DaySuffix/26
$:/language/Date/DaySuffix/27
$:/language/Date/DaySuffix/28
$:/language/Date/DaySuffix/29
$:/language/Date/DaySuffix/3
$:/language/Date/DaySuffix/30
$:/language/Date/DaySuffix/31
$:/language/Date/DaySuffix/4
$:/language/Date/DaySuffix/5
$:/language/Date/DaySuffix/6
$:/language/Date/DaySuffix/7
$:/language/Date/DaySuffix/8
$:/language/Date/DaySuffix/9
$:/language/Date/Long/Day/0
$:/language/Date/Long/Day/1
$:/language/Date/Long/Day/2
$:/language/Date/Long/Day/3
$:/language/Date/Long/Day/4
$:/language/Date/Long/Day/5
$:/language/Date/Long/Day/6
$:/language/Date/Long/Month/1
$:/language/Date/Long/Month/10
$:/language/Date/Long/Month/11
$:/language/Date/Long/Month/12
$:/language/Date/Long/Month/2
$:/language/Date/Long/Month/3
$:/language/Date/Long/Month/4
$:/language/Date/Long/Month/5
$:/language/Date/Long/Month/6
$:/language/Date/Long/Month/7
$:/language/Date/Long/Month/8
$:/language/Date/Long/Month/9
$:/language/Date/Period/am
$:/language/Date/Period/pm
$:/language/Date/Short/Day/0
$:/language/Date/Short/Day/1
$:/language/Date/Short/Day/2
$:/language/Date/Short/Day/3
$:/language/Date/Short/Day/4
$:/language/Date/Short/Day/5
$:/language/Date/Short/Day/6
$:/language/Date/Short/Month/1
$:/language/Date/Short/Month/10
$:/language/Date/Short/Month/11
$:/language/Date/Short/Month/12
$:/language/Date/Short/Month/2
$:/language/Date/Short/Month/3
$:/language/Date/Short/Month/4
$:/language/Date/Short/Month/5
$:/language/Date/Short/Month/6
$:/language/Date/Short/Month/7
$:/language/Date/Short/Month/8
$:/language/Date/Short/Month/9
$:/language/DefaultNewTiddlerTitle
$:/language/Docs/Fields/_canonical_uri
$:/language/Docs/Fields/bag
$:/language/Docs/Fields/caption
$:/language/Docs/Fields/color
$:/language/Docs/Fields/component
$:/language/Docs/Fields/created
$:/language/Docs/Fields/creator
$:/language/Docs/Fields/current-tiddler
$:/language/Docs/Fields/dependents
$:/language/Docs/Fields/description
$:/language/Docs/Fields/draft.of
$:/language/Docs/Fields/draft.title
$:/language/Docs/Fields/footer
$:/language/Docs/Fields/hack-to-give-us-something-to-compare-against
$:/language/Docs/Fields/icon
$:/language/Docs/Fields/library
$:/language/Docs/Fields/list
$:/language/Docs/Fields/list-after
$:/language/Docs/Fields/list-before
$:/language/Docs/Fields/modified
$:/language/Docs/Fields/modifier
$:/language/Docs/Fields/name
$:/language/Docs/Fields/plugin-priority
$:/language/Docs/Fields/plugin-type
$:/language/Docs/Fields/released
$:/language/Docs/Fields/revision
$:/language/Docs/Fields/source
$:/language/Docs/Fields/subtitle
$:/language/Docs/Fields/tags
$:/language/Docs/Fields/text
$:/language/Docs/Fields/title
$:/language/Docs/Fields/type
$:/language/Docs/Fields/version
$:/language/Docs/ModuleTypes/animation
$:/language/Docs/ModuleTypes/command
$:/language/Docs/ModuleTypes/config
$:/language/Docs/ModuleTypes/filteroperator
$:/language/Docs/ModuleTypes/global
$:/language/Docs/ModuleTypes/isfilteroperator
$:/language/Docs/ModuleTypes/macro
$:/language/Docs/ModuleTypes/parser
$:/language/Docs/ModuleTypes/saver
$:/language/Docs/ModuleTypes/startup
$:/language/Docs/ModuleTypes/storyview
$:/language/Docs/ModuleTypes/tiddlerdeserializer
$:/language/Docs/ModuleTypes/tiddlerfield
$:/language/Docs/ModuleTypes/tiddlermethod
$:/language/Docs/ModuleTypes/upgrader
$:/language/Docs/ModuleTypes/utils
$:/language/Docs/ModuleTypes/utils-node
$:/language/Docs/ModuleTypes/widget
$:/language/Docs/ModuleTypes/wikimethod
$:/language/Docs/ModuleTypes/wikirule
$:/language/Docs/PaletteColours/alert-background
$:/language/Docs/PaletteColours/alert-border
$:/language/Docs/PaletteColours/alert-highlight
$:/language/Docs/PaletteColours/alert-muted-foreground
$:/language/Docs/PaletteColours/background
$:/language/Docs/PaletteColours/blockquote-bar
$:/language/Docs/PaletteColours/button-background
$:/language/Docs/PaletteColours/button-border
$:/language/Docs/PaletteColours/button-foreground
$:/language/Docs/PaletteColours/code-background
$:/language/Docs/PaletteColours/code-border
$:/language/Docs/PaletteColours/code-foreground
$:/language/Docs/PaletteColours/dirty-indicator
$:/language/Docs/PaletteColours/download-background
$:/language/Docs/PaletteColours/download-foreground
$:/language/Docs/PaletteColours/dragger-background
$:/language/Docs/PaletteColours/dragger-foreground
$:/language/Docs/PaletteColours/dropdown-background
$:/language/Docs/PaletteColours/dropdown-border
$:/language/Docs/PaletteColours/dropdown-tab-background
$:/language/Docs/PaletteColours/dropdown-tab-background-selected
$:/language/Docs/PaletteColours/dropzone-background
$:/language/Docs/PaletteColours/external-link-background
$:/language/Docs/PaletteColours/external-link-background-hover
$:/language/Docs/PaletteColours/external-link-background-visited
$:/language/Docs/PaletteColours/external-link-foreground
$:/language/Docs/PaletteColours/external-link-foreground-hover
$:/language/Docs/PaletteColours/external-link-foreground-visited
$:/language/Docs/PaletteColours/foreground
$:/language/Docs/PaletteColours/message-background
$:/language/Docs/PaletteColours/message-border
$:/language/Docs/PaletteColours/message-foreground
$:/language/Docs/PaletteColours/modal-backdrop
$:/language/Docs/PaletteColours/modal-background
$:/language/Docs/PaletteColours/modal-border
$:/language/Docs/PaletteColours/modal-footer-background
$:/language/Docs/PaletteColours/modal-footer-border
$:/language/Docs/PaletteColours/modal-header-border
$:/language/Docs/PaletteColours/muted-foreground
$:/language/Docs/PaletteColours/notification-background
$:/language/Docs/PaletteColours/notification-border
$:/language/Docs/PaletteColours/page-background
$:/language/Docs/PaletteColours/pre-background
$:/language/Docs/PaletteColours/pre-border
$:/language/Docs/PaletteColours/primary
$:/language/Docs/PaletteColours/sidebar-button-foreground
$:/language/Docs/PaletteColours/sidebar-controls-foreground
$:/language/Docs/PaletteColours/sidebar-controls-foreground-hover
$:/language/Docs/PaletteColours/sidebar-foreground
$:/language/Docs/PaletteColours/sidebar-foreground-shadow
$:/language/Docs/PaletteColours/sidebar-muted-foreground
$:/language/Docs/PaletteColours/sidebar-muted-foreground-hover
$:/language/Docs/PaletteColours/sidebar-tab-background
$:/language/Docs/PaletteColours/sidebar-tab-background-selected
$:/language/Docs/PaletteColours/sidebar-tab-border
$:/language/Docs/PaletteColours/sidebar-tab-border-selected
$:/language/Docs/PaletteColours/sidebar-tab-divider
$:/language/Docs/PaletteColours/sidebar-tab-foreground
$:/language/Docs/PaletteColours/sidebar-tab-foreground-selected
$:/language/Docs/PaletteColours/sidebar-tiddler-link-foreground
$:/language/Docs/PaletteColours/sidebar-tiddler-link-foreground-hover
$:/language/Docs/PaletteColours/site-title-foreground
$:/language/Docs/PaletteColours/static-alert-foreground
$:/language/Docs/PaletteColours/tab-background
$:/language/Docs/PaletteColours/tab-background-selected
$:/language/Docs/PaletteColours/tab-border
$:/language/Docs/PaletteColours/tab-border-selected
$:/language/Docs/PaletteColours/tab-divider
$:/language/Docs/PaletteColours/tab-foreground
$:/language/Docs/PaletteColours/tab-foreground-selected
$:/language/Docs/PaletteColours/table-border
$:/language/Docs/PaletteColours/table-footer-background
$:/language/Docs/PaletteColours/table-header-background
$:/language/Docs/PaletteColours/tag-background
$:/language/Docs/PaletteColours/tag-foreground
$:/language/Docs/PaletteColours/tiddler-background
$:/language/Docs/PaletteColours/tiddler-border
$:/language/Docs/PaletteColours/tiddler-controls-foreground
$:/language/Docs/PaletteColours/tiddler-controls-foreground-hover
$:/language/Docs/PaletteColours/tiddler-controls-foreground-selected
$:/language/Docs/PaletteColours/tiddler-editor-background
$:/language/Docs/PaletteColours/tiddler-editor-border
$:/language/Docs/PaletteColours/tiddler-editor-border-image
$:/language/Docs/PaletteColours/tiddler-editor-fields-even
$:/language/Docs/PaletteColours/tiddler-editor-fields-odd
$:/language/Docs/PaletteColours/tiddler-info-background
$:/language/Docs/PaletteColours/tiddler-info-border
$:/language/Docs/PaletteColours/tiddler-info-tab-background
$:/language/Docs/PaletteColours/tiddler-link-background
$:/language/Docs/PaletteColours/tiddler-link-foreground
$:/language/Docs/PaletteColours/tiddler-subtitle-foreground
$:/language/Docs/PaletteColours/tiddler-title-foreground
$:/language/Docs/PaletteColours/toolbar-cancel-button
$:/language/Docs/PaletteColours/toolbar-close-button
$:/language/Docs/PaletteColours/toolbar-delete-button
$:/language/Docs/PaletteColours/toolbar-done-button
$:/language/Docs/PaletteColours/toolbar-edit-button
$:/language/Docs/PaletteColours/toolbar-info-button
$:/language/Docs/PaletteColours/toolbar-new-button
$:/language/Docs/PaletteColours/toolbar-options-button
$:/language/Docs/PaletteColours/toolbar-save-button
$:/language/Docs/PaletteColours/untagged-background
$:/language/Docs/PaletteColours/very-muted-foreground
$:/language/Docs/Types/application/javascript
$:/language/Docs/Types/application/json
$:/language/Docs/Types/application/x-tiddler-dictionary
$:/language/Docs/Types/image/gif
$:/language/Docs/Types/image/jpeg
$:/language/Docs/Types/image/png
$:/language/Docs/Types/image/svg+xml
$:/language/Docs/Types/image/x-icon
$:/language/Docs/Types/text/css
$:/language/Docs/Types/text/html
$:/language/Docs/Types/text/plain
$:/language/Docs/Types/text/vnd.tiddlywiki
$:/language/Docs/Types/text/x-tiddlywiki
$:/language/DropMessage
$:/language/EditTemplate/Body/External/Hint
$:/language/EditTemplate/Body/Placeholder
$:/language/EditTemplate/Body/Preview/Type/Output
$:/language/EditTemplate/Field/Remove/Caption
$:/language/EditTemplate/Field/Remove/Hint
$:/language/EditTemplate/Fields/Add/Button
$:/language/EditTemplate/Fields/Add/Dropdown/System
$:/language/EditTemplate/Fields/Add/Dropdown/User
$:/language/EditTemplate/Fields/Add/Name/Placeholder
$:/language/EditTemplate/Fields/Add/Prompt
$:/language/EditTemplate/Fields/Add/Value/Placeholder
$:/language/EditTemplate/Shadow/OverriddenWarning
$:/language/EditTemplate/Shadow/Warning
$:/language/EditTemplate/Tags/Add/Button
$:/language/EditTemplate/Tags/Add/Placeholder
$:/language/EditTemplate/Tags/Dropdown/Caption
$:/language/EditTemplate/Tags/Dropdown/Hint
$:/language/EditTemplate/Title/BadCharacterWarning
$:/language/EditTemplate/Type/Delete/Caption
$:/language/EditTemplate/Type/Delete/Hint
$:/language/EditTemplate/Type/Dropdown/Caption
$:/language/EditTemplate/Type/Dropdown/Hint
$:/language/EditTemplate/Type/Placeholder
$:/language/EditTemplate/Type/Prompt
$:/language/Encryption/Cancel
$:/language/Encryption/ConfirmClearPassword
$:/language/Encryption/Password
$:/language/Encryption/PasswordNoMatch
$:/language/Encryption/PromptSetPassword
$:/language/Encryption/RepeatPassword
$:/language/Encryption/SetPassword
$:/language/Encryption/Username
$:/language/Error/Caption
$:/language/Error/Filter
$:/language/Error/FilterSyntax
$:/language/Error/IsFilterOperator
$:/language/Error/LoadingPluginLibrary
$:/language/Error/RecursiveTransclusion
$:/language/Error/RetrievingSkinny
$:/language/Error/SavingToTWEdit
$:/language/Error/WhileSaving
$:/language/Error/XMLHttpRequest
$:/language/Exporters/CsvFile
$:/language/Exporters/JsonFile
$:/language/Exporters/StaticRiver
$:/language/Exporters/TidFile
$:/language/Filters/AllTags
$:/language/Filters/AllTiddlers
$:/language/Filters/Drafts
$:/language/Filters/Missing
$:/language/Filters/Orphans
$:/language/Filters/OverriddenShadowTiddlers
$:/language/Filters/RecentSystemTiddlers
$:/language/Filters/RecentTiddlers
$:/language/Filters/ShadowTiddlers
$:/language/Filters/SystemTags
$:/language/Filters/SystemTiddlers
$:/language/Filters/TypedTiddlers
$:/language/Help/build
$:/language/Help/clearpassword
$:/language/Help/default
$:/language/Help/editions
$:/language/Help/help
$:/language/Help/init
$:/language/Help/load
$:/language/Help/makelibrary
$:/language/Help/notfound
$:/language/Help/output
$:/language/Help/password
$:/language/Help/rendertiddler
$:/language/Help/rendertiddlers
$:/language/Help/savetiddler
$:/language/Help/savetiddlers
$:/language/Help/server
$:/language/Help/setfield
$:/language/Help/unpackplugin
$:/language/Help/verbose
$:/language/Help/version
$:/language/Import/Imported/Hint
$:/language/Import/Listing/Cancel/Caption
$:/language/Import/Listing/Hint
$:/language/Import/Listing/Import/Caption
$:/language/Import/Listing/Select/Caption
$:/language/Import/Listing/Status/Caption
$:/language/Import/Listing/Title/Caption
$:/language/Import/Upgrader/Plugins/Suppressed/Incompatible
$:/language/Import/Upgrader/Plugins/Suppressed/Version
$:/language/Import/Upgrader/Plugins/Upgraded
$:/language/Import/Upgrader/State/Suppressed
$:/language/Import/Upgrader/System/Suppressed
$:/language/Import/Upgrader/ThemeTweaks/Created
$:/language/InternalJavaScriptError/Hint
$:/language/InternalJavaScriptError/Title
$:/language/InvalidFieldName
$:/language/LazyLoadingWarning
$:/language/LoginToTiddlySpace
$:/language/MissingTiddler/Hint
$:/language/Modals/Download
$:/language/Modals/SaveInstructions
$:/language/No
$:/language/Notifications/Save/Done
$:/language/Notifications/Save/Starting
$:/language/OfficialPluginLibrary
$:/language/OfficialPluginLibrary/Hint
$:/language/PluginReloadWarning
$:/language/RecentChanges/DateFormat
$:/language/RelativeDate/Future/Days
$:/language/RelativeDate/Future/Hours
$:/language/RelativeDate/Future/Minutes
$:/language/RelativeDate/Future/Months
$:/language/RelativeDate/Future/Second
$:/language/RelativeDate/Future/Seconds
$:/language/RelativeDate/Future/Years
$:/language/RelativeDate/Past/Days
$:/language/RelativeDate/Past/Hours
$:/language/RelativeDate/Past/Minutes
$:/language/RelativeDate/Past/Months
$:/language/RelativeDate/Past/Second
$:/language/RelativeDate/Past/Seconds
$:/language/RelativeDate/Past/Years
$:/language/Search/DefaultResults/Caption
$:/language/Search/Filter/Caption
$:/language/Search/Filter/Hint
$:/language/Search/Filter/Matches
$:/language/Search/Matches
$:/language/Search/Matches/All
$:/language/Search/Matches/Title
$:/language/Search/Search
$:/language/Search/Shadows/Caption
$:/language/Search/Shadows/Hint
$:/language/Search/Shadows/Matches
$:/language/Search/Standard/Caption
$:/language/Search/Standard/Hint
$:/language/Search/Standard/Matches
$:/language/Search/System/Caption
$:/language/Search/System/Hint
$:/language/Search/System/Matches
$:/language/SideBar/All/Caption
$:/language/SideBar/Contents/Caption
$:/language/SideBar/Drafts/Caption
$:/language/SideBar/Missing/Caption
$:/language/SideBar/More/Caption
$:/language/SideBar/Open/Caption
$:/language/SideBar/Orphans/Caption
$:/language/SideBar/Recent/Caption
$:/language/SideBar/Shadows/Caption
$:/language/SideBar/System/Caption
$:/language/SideBar/Tags/Caption
$:/language/SideBar/Tags/Untagged/Caption
$:/language/SideBar/Tools/Caption
$:/language/SideBar/Types/Caption
$:/language/Snippets/ListByTag
$:/language/Snippets/MacroDefinition
$:/language/Snippets/Table4x3
$:/language/Snippets/TableOfContents
$:/language/SystemTiddler/Tooltip
$:/language/TagManager/Colour/Heading
$:/language/TagManager/Count/Heading
$:/language/TagManager/Icon/Heading
$:/language/TagManager/Info/Heading
$:/language/TagManager/Tag/Heading
$:/language/ThemeTweaks/Metrics
$:/language/ThemeTweaks/Metrics/BodyFontSize
$:/language/ThemeTweaks/Metrics/BodyLineHeight
$:/language/ThemeTweaks/Metrics/FontSize
$:/language/ThemeTweaks/Metrics/LineHeight
$:/language/ThemeTweaks/Metrics/SidebarBreakpoint
$:/language/ThemeTweaks/Metrics/SidebarBreakpoint/Hint
$:/language/ThemeTweaks/Metrics/SidebarWidth
$:/language/ThemeTweaks/Metrics/SidebarWidth/Hint
$:/language/ThemeTweaks/Metrics/StoryLeft
$:/language/ThemeTweaks/Metrics/StoryLeft/Hint
$:/language/ThemeTweaks/Metrics/StoryRight
$:/language/ThemeTweaks/Metrics/StoryRight/Hint
$:/language/ThemeTweaks/Metrics/StoryTop
$:/language/ThemeTweaks/Metrics/StoryTop/Hint
$:/language/ThemeTweaks/Metrics/StoryWidth
$:/language/ThemeTweaks/Metrics/StoryWidth/Hint
$:/language/ThemeTweaks/Metrics/TiddlerWidth
$:/language/ThemeTweaks/Metrics/TiddlerWidth/Hint
$:/language/ThemeTweaks/Options
$:/language/ThemeTweaks/Options/CodeWrapping
$:/language/ThemeTweaks/Options/SidebarLayout
$:/language/ThemeTweaks/Options/SidebarLayout/Fixed-Fluid
$:/language/ThemeTweaks/Options/SidebarLayout/Fluid-Fixed
$:/language/ThemeTweaks/Options/StickyTitles
$:/language/ThemeTweaks/Options/StickyTitles/Hint
$:/language/ThemeTweaks/Settings
$:/language/ThemeTweaks/Settings/BackgroundImage
$:/language/ThemeTweaks/Settings/BackgroundImageAttachment
$:/language/ThemeTweaks/Settings/BackgroundImageAttachment/Fixed
$:/language/ThemeTweaks/Settings/BackgroundImageAttachment/Scroll
$:/language/ThemeTweaks/Settings/BackgroundImageSize
$:/language/ThemeTweaks/Settings/BackgroundImageSize/Auto
$:/language/ThemeTweaks/Settings/BackgroundImageSize/Contain
$:/language/ThemeTweaks/Settings/BackgroundImageSize/Cover
$:/language/ThemeTweaks/Settings/CodeFontFamily
$:/language/ThemeTweaks/Settings/FontFamily
$:/language/ThemeTweaks/ThemeTweaks
$:/language/ThemeTweaks/ThemeTweaks/Hint
$:/language/Tiddler/DateFormat
$:/language/TiddlerInfo/Advanced/Caption
$:/language/TiddlerInfo/Advanced/PluginInfo/Empty/Hint
$:/language/TiddlerInfo/Advanced/PluginInfo/Heading
$:/language/TiddlerInfo/Advanced/PluginInfo/Hint
$:/language/TiddlerInfo/Advanced/ShadowInfo/Heading
$:/language/TiddlerInfo/Advanced/ShadowInfo/NotShadow/Hint
$:/language/TiddlerInfo/Advanced/ShadowInfo/OverriddenShadow/Hint
$:/language/TiddlerInfo/Advanced/ShadowInfo/Shadow/Hint
$:/language/TiddlerInfo/Advanced/ShadowInfo/Shadow/Source
$:/language/TiddlerInfo/Fields/Caption
$:/language/TiddlerInfo/List/Caption
$:/language/TiddlerInfo/List/Empty
$:/language/TiddlerInfo/Listed/Caption
$:/language/TiddlerInfo/Listed/Empty
$:/language/TiddlerInfo/References/Caption
$:/language/TiddlerInfo/References/Empty
$:/language/TiddlerInfo/Tagging/Caption
$:/language/TiddlerInfo/Tagging/Empty
$:/language/TiddlerInfo/Tools/Caption
$:/language/UnsavedChangesWarning
$:/language/Yes
$:/languages/en-GB
$:/languages/en-GB/icon
$:/palette
$:/palettes/Blanca
$:/palettes/Blue
$:/palettes/ContrastDark
$:/palettes/ContrastLight
$:/palettes/DarkPhotos
$:/palettes/Muted
$:/palettes/Rocker
$:/palettes/SolarFlare
$:/palettes/Vanilla
$:/plugins/tiddlywiki/browser-sniff/bowser/bowser.js
$:/plugins/tiddlywiki/browser-sniff/readme
$:/plugins/tiddlywiki/browser-sniff/sniff.js
$:/plugins/tiddlywiki/browser-sniff/usage
$:/plugins/tiddlywiki/evernote/docs
$:/plugins/tiddlywiki/evernote/modules/enex-deserializer.js
$:/plugins/tiddlywiki/evernote/readme
$:/plugins/tiddlywiki/googleanalytics/googleanalytics.js
$:/plugins/tiddlywiki/googleanalytics/readme
$:/plugins/tiddlywiki/googleanalytics/usage
$:/plugins/tiddlywiki/nodewebkitsaver/readme
$:/plugins/tiddlywiki/railroad/components.js
$:/plugins/tiddlywiki/railroad/example
$:/plugins/tiddlywiki/railroad/example-source
$:/plugins/tiddlywiki/railroad/parser.js
$:/plugins/tiddlywiki/railroad/railroad-diagrams.css
$:/plugins/tiddlywiki/railroad/railroad-diagrams.js
$:/plugins/tiddlywiki/railroad/readme
$:/plugins/tiddlywiki/railroad/syntax
$:/plugins/tiddlywiki/railroad/syntax-string
$:/plugins/tiddlywiki/railroad/typed-parser.js
$:/plugins/tiddlywiki/railroad/usage
$:/plugins/tiddlywiki/railroad/wrapper.js
$:/SiteSubtitle
$:/SiteTitle
$:/snippets/allfields
$:/snippets/currpalettepreview
$:/snippets/download-wiki-button
$:/snippets/languageswitcher
$:/snippets/minilanguageswitcher
$:/snippets/minithemeswitcher
$:/snippets/modules
$:/snippets/paletteeditor
$:/snippets/palettepreview
$:/snippets/paletteswitcher
$:/snippets/themeswitcher
$:/snippets/viewswitcher
$:/TagManager
$:/tags/AdvancedSearch
$:/tags/AdvancedSearch/FilterButton
$:/tags/ControlPanel
$:/tags/ControlPanel/Info
$:/tags/ControlPanel/Plugins
$:/tags/EditorToolbar
$:/tags/EditTemplate
$:/tags/EditToolbar
$:/tags/MoreSideBar
$:/tags/PageControls
$:/tags/PageTemplate
$:/tags/SideBar
$:/tags/TiddlerInfo
$:/tags/TiddlerInfo/Advanced
$:/tags/ViewTemplate
$:/tags/ViewToolbar
$:/temp/advancedsearch
$:/temp/search
$:/themes/tiddlywiki/snowwhite/base
$:/themes/tiddlywiki/vanilla/base
$:/themes/tiddlywiki/vanilla/metrics/bodyfontsize
$:/themes/tiddlywiki/vanilla/metrics/bodylineheight
$:/themes/tiddlywiki/vanilla/metrics/fontsize
$:/themes/tiddlywiki/vanilla/metrics/lineheight
$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint
$:/themes/tiddlywiki/vanilla/metrics/sidebarwidth
$:/themes/tiddlywiki/vanilla/metrics/storyleft
$:/themes/tiddlywiki/vanilla/metrics/storyright
$:/themes/tiddlywiki/vanilla/metrics/storytop
$:/themes/tiddlywiki/vanilla/metrics/storywidth
$:/themes/tiddlywiki/vanilla/metrics/tiddlerwidth
$:/themes/tiddlywiki/vanilla/options/codewrapping
$:/themes/tiddlywiki/vanilla/options/sidebarlayout
$:/themes/tiddlywiki/vanilla/options/stickytitles
$:/themes/tiddlywiki/vanilla/reset
$:/themes/tiddlywiki/vanilla/settings/backgroundimageattachment
$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize
$:/themes/tiddlywiki/vanilla/settings/codefontfamily
$:/themes/tiddlywiki/vanilla/settings/fontfamily
$:/themes/tiddlywiki/vanilla/sticky
$:/themes/tiddlywiki/vanilla/themetweaks
$:/view
GettingStarted

Sharing a TiddlyWiki on Dropbox

8th June 2015 at 4:20am

You can work on a TiddlyWiki file in Dropbox and publish a URL that anyone can use to see a read-only view of the file.

  1. Save your TiddlyWiki file within your Dropbox folder
  2. Select Dropbox's "Share Link" option to obtain a public URL for the file
    • In the Dropbox web interface, this is done by clicking the link icon that appears when you hover over a file. Dropbox also adds a "Share Link" item to the file context menu in Finder on OS X and Explorer on Windows
  3. The URL generated by Dropbox will have this form:

    https://www.dropbox.com/s/<gobbledegook>/mywiki.html

  4. Modify the URL like this, carefully preserving the gobbledegook:

    https://dl.dropboxusercontent.com/s/<gobbledegook>/mywiki.html

The result is a "secret" URL that you can send to other people to enable them to see the wiki.


Enter a generated URL here and you can copy and paste the secret URL:

https://dl.dropboxusercontent.com/s/<gobbledegook>/mywiki.html (open)

Sharing your tiddlers with others

10th June 2016 at 8:40am

There are a number of ways that people can share tiddlers:

  • You can attach a TiddlyWiki to an e-mail
  • You can publish your TiddlyWiki online, and grab a link to send or message to others:
    • A link to the URL of the file itself
    • A permalink ( ) to a specific tiddler (see PermaLinks)
    • A permaview ( ) link of all the currently open tiddlers (see PermaView)
  • You can grab tiddlers from TiddlyWikis that others have published online by clicking on a link to the tiddler within their file, and then dragging and dropping the link into your own file. An import tiddler will appear, and you can click to import the tiddler or tiddlers to your file. (see ImportTiddlers)
  • You can share a Dropbox link to your TiddlyWiki
  • You can export tiddlers ( ) in a variety of formats including text, static HTML, comma separated values (ie spreadsheet compatible)

Signing the Contributor License Agreement

17th June 2016 at 4:15pm

Create a GitHub pull request to add your name to cla-individual.md or cla-entity.md, with the date in the format (YYYY/MM/DD).

step by step

  1. Navigate to licenses/CLA-individual or licenses/CLA-entity according to whether you are signing as an individual or representative of an organisation
  2. Click the "edit" button at the top-right corner (clicking this button will fork the project so you can edit the file)
  3. Add your name at the bottom
    • eg: Jeremy Ruston, @Jermolene, 2011/11/22
  4. Below the edit box for the CLA text you should see a box labelled Propose file change
  5. Enter a brief title to explain the change (eg, "Signing the CLA")
  6. Click the green button labelled Propose file change
  7. On the following screen, click the green button labelled Create pull request

Simple Zork-like Game by Jed Carty

18th November 2014 at 2:36pm

A simple game built with TiddlyWiki, introduced in this post.

http://zorklike.tiddlyspot.com

I decided to see if it was possible to make some sort of game using only the core tiddlywiki with no plugins or javascript. I made a very bare bones zork/interactive fiction type game. It is currently the simplest thing I could make and claim it was a game, but I may add on to it in the future. It uses the 5.1.5 prerelease because the action-setfield widget saved lots of work making macros.

One goal of this is to use nothing besides what is contained in the core tiddlywiki, so there is no javascript and no plugins.

SingleFileApplication

26th January 2014 at 4:03pm

A single file application is a web application where all of the assets are delivered in a single static file. This means that it can be downloaded and used offline without losing functionality. It can also be hosted on almost any type of web server.

TiddlyWiki is an unusual single file application because it stores its data within the same file, and is capable of saving changes to itself.

Every single file application must also by definition be a SinglePageApplication, but the converse is not true.

SinglePageApplication

23rd August 2013 at 6:51pm

As defined by Wikipedia, a SinglePageApplication is a web application that presents itself as a single HTML document that dynamically loads additional content as the user browses the site. Frequently, single page applications are carefully designed to hide their nature, appearing and functioning as an ordinary static website by respecting the address bar and the back/forward navigation controls.

Unusually, TiddlyWiki is also a SingleFileApplication.

Some of the things you can do with TiddlyWiki

2nd June 2016 at 6:17am
  • Take notes, and use tags and hyperlinking to form relationships between your notes
  • Use tabs, tables, tag-based lists, and tables of contents to get organised
  • Bookmark your favorite websites (see an example at http://giffmex.org/experiments/tidmarks.html)
  • Keep track of tasks and appointments, and organise them by multiple tags (see our TaskManagementExample)
  • Inventory just about anything: your recipes, personal library, contacts, music collection, and more
  • Create a blog or website
  • Write a book
  • Organise your images into galleries (see our ImageGallery Example)
  • Share the information in your TiddlyWiki with others, as an online file, as a file attachment, as a tiddler file, or as a link to a specific online tiddler (try clicking and dragging a tiddler from one TiddlyWiki file to another to see what happens)
  • Draw a sketch (Edit Motovun Jack.jpg and start drawing over the image to see what happens)
  • Use familiar web user interface elements such as lightboxes - see SampleWizard
  • Create a slideshow presentation
  • Set up an entire local or online knowledgebase, with a central TiddlyWiki file linking to other TiddlyWiki files (http://recursos.giffmex.org is a Spanish online example of this)
  • Set up a data visualisation using tiddlers as data (see the visualisations at http://tiddlywiki.com/plugins/tiddlywiki/d3/)

sort Operator

3rd February 2015 at 7:12pm
purposesort the input by text field
inputa selection of titles
parameterF = the name of a field, defaulting to title
outputthe input, sorted into ascending order by field F, treating field values as text
! outputthe input, likewise sorted into descending order

The difference between capital and lowercase letters is ignored. Compare sortcs.

Examples

sort Operator (Examples)

24th January 2015 at 11:32am

These examples make use of the Days of the Week tiddler.

[list[Days of the Week]sort[]]

[list[Days of the Week]!sort[]]

one two Three four +[sort[]]

[prefix[Tiddl]sort[text]]

[has[created]sort[created]limit[10]]
→ the oldest 10 tiddlers in the wiki

sortby Operator

8th November 2015 at 5:21am
purposesort the current list in the order of the list referenced in the operand
inputa list of items
parameterorder = a list specifying the order in which to sort the current list
outputall items sorted by lookup list

sortby Operator (Examples)

8th November 2015 at 5:21am

These examples make use of the Days of the Week tiddler.

10 6 4 9 3 2 8 +[sortby[1 2 3 4 5 6 7 8 9 10]]

Friday Tuesday Monday Thursday Sunday +[sortby{Days of the Week!!list}]

1 Mon 5 Fri 4 Tue Sun 2 +[sortby{Days of the Week!!short}]

sortcs Operator

17th April 2015 at 1:57pm
purposesort the input by text field, treating upper and lower case as different
inputa selection of titles
parameterF = the name of a field, defaulting to title
outputthe input, sorted into ascending order by field F, treating field values as text
! outputthe input, likewise sorted into descending order

Capital and lowercase letters are treated as different. Compare sort.

Examples

sortcs Operator (Examples)

24th January 2015 at 11:33am

These examples make use of the Days of the Week tiddler.

one two Three four +[sortcs[]]

one two Three four +[!sortcs[]]

Spelling

17th January 2015 at 3:25pm

Because TiddlyWiki is of British origin, its English documentation uses British spelling in preference to US spelling.

Words like "customise" are spelled "-ise", not "-ize". Words like "colour" will also be spelled using UK English unless they are being used for reserved words in code, such as in CSS or JavaScript.

Standard technical acronyms are written in upper case, without dots: "HTML", not "html" or "H.T.M.L."

Avoid arbitrarily abbreviating words and sentences. But the following abbreviations are acceptable:

AbbreviationMeaningNotes
e.g.for examplewith a dot after each letter
i.e.that is to saywith a dot after each letter
etcand so onwithout a dot

splitbefore Operator

21st February 2015 at 7:37pm
purposeselect a delimited prefix from each input title
inputa selection of titles
parameterS = a string of characters marking the end of the prefix
outputthe prefix, up to and including S, of each input title

Each input title is processed in turn.

  • A title that contains S contributes everything up to and including S.
  • A title that doesn't contain S simply contributes itself to the output.

Contributions are dominantly appended to the output.

The table-of-contents macros use this operator with / as the parameter.

Examples

splitbefore Operator (Examples)

26th January 2015 at 2:39pm

2015-01-26 2014-07-19 2013 +[splitbefore[-]]
[[green trees]splitbefore[ee]]

Stanford JavaScript Crypto Library

25th June 2015 at 12:54am

The Stanford Javascript Crypto Library is a project by the Stanford Computer Security Lab to build a secure, powerful, fast, small, easy-to-use, cross-browser library for cryptography in Javascript.

http://bitwiseshiftleft.github.io/sjcl/

StateMechanism

21st February 2015 at 10:55pm

The StateMechanism in TiddlyWiki is at the heart of how complex user interfaces can be built from WikiText.

In the browser, the TiddlyWiki display is produced by dynamically rendering the tiddler $:/core/ui/PageTemplate. Through various transclusions and other widgets it renders the entire user interface. The dynamic rendering is accomplished by a mechanism called "binding": any changes to the tiddlers in the store are dynamically reflected in the browser display.

The stack of templates that make up the TiddlyWiki display are complex but we'll focus on the line that displays the main story column:

<$list filter="[list[$:/StoryList]]" history="$:/HistoryList" template="$:/core/ui/ViewTemplate" editTemplate="$:/core/ui/EditTemplate" storyview={{$:/view}} />

Breaking down the attributes applied to the list widget:

  • filter: selects the list of tiddlers in the list field of the tiddler $:/StoryList. If a tiddler is added or removed from that list then it is automatically reflected in the displayed list
  • history: references the tiddler to be used to store the history stack (see the NavigationMechanism)
  • template: identifies a template tiddler to be used for rendering each tiddler in the list
  • editTemplate: identifies a different template tiddler to be used for rendering tiddlers that are in draft mode
  • storyview: specifies the story view to be used (eg classic, or zoomin)

The $:/StoryList tiddler is an example of a StateTiddler: a tiddler that is used to hold the state of the user interface. Changes to the user interface are made indirectly, by changing the underlying state tiddlers, and letting TiddlyWiki ripple the changes through the user interface.

Note how this approach makes the open tab in the sidebar very easy to implement: it is just another list widget referencing the same state tiddler, but with a different template:

<$list filter="[list[$:/StoryList]]" history="$:/HistoryList" storyview="pop">
<$button message="tm-close-tiddler" class="tc-btn-invisible tc-btn-mini">&times;</$button> <$link to={{!!title}}><$view field="title"/></$link>
</$list>

Now consider the implementation of the info panel within the tiddler template. We want to be able to toggle the info panel open and closed, which means that we must track its current state in a tiddler.

However, we can't track the state in a tiddler called, say, $:/InfoPanelState because every tiddler would share the same state; changing the value of the tiddler would affect all tiddlers displayed in the story.

The solution is to dynamically generate a unique title for each state tiddler that we need. We need to ensure that the same state tiddler title is generated each time a user interface element is rendered. To do that, we append together tokens representating each of the stack of transclusions that led to the current rendering location. Then that string of symbols is hashed to a simple numeric value.

The process of generating a state tiddler title is encapsulated in the qualify macro.

Story River

17th September 2015 at 8:40pm

The "story river" (sometimes abbreviated to "story") is the sequence of tiddlers in the main column of the display.

storyTiddler Variable

21st February 2015 at 10:25pm

When a tiddler is viewed or edited, then within its branch of the widget tree, the storyTiddler variable contains the title of that tiddler.

The default view template and edit template initialise storyTiddler to the value of the currentTiddler variable. This in turn will have been set by a $list widget in the relevant part of the page template.

storyTiddler is undefined outside the story river, such as in the sidebar.

Examples

storyTiddler Variable (Examples)

21st February 2015 at 2:14pm

<ol>
<$list filter="[prefix[J]]">
<li><<currentTiddler>>, <<storyTiddler>></li>
</$list>
</ol>

storyviews Operator

3rd February 2015 at 7:14pm
purposeselect the names of all the story views
inputignored
parameternone
outputthe name of each story view

The names are those exported by modules whose module-type is storyview.

Examples

storyviews Operator (Examples)

26th January 2015 at 2:21pm

[storyviews[]]

Structuring TiddlyWiki

24th January 2015 at 9:15pm

TiddlyWiki5 provides several features to help you structure information as tiddlers, and model the relationships between them:

Styles and Classes in WikiText

5th December 2013 at 4:05pm

You can use this construction to cause the wrapped content to be assigned specified CSS classes or styles:

@@.myStyle
* List One
* List Two
@@

That renders as:

  • List One
  • List Two

... and the underlying HTML is:

<ul class="myStyle"><li>List One</li><li>List Two</li></ul>

Similar syntax is used to assign styles. For example:

@@background-color:red;
* List One
* List Two
@@

That renders as:

  • List One
  • List Two

... and the underlying HTML is:

<ul style="background-color:red;"><li>List One</li><li>List Two</li></ul>

Multiple styles and classes can be mixed. For example:

@@.tc-tiddler-frame
@@width:400px;
Some text
@@

That renders as:

Some text

... and the underlying HTML is:

<p class="tc-tiddler-frame" style="width:400px;">Some text
</p>

Stylesheet Macros

21st February 2015 at 10:39pm

The following core macros make it easy to specify alternative browser-specific properties when constructing a stylesheet tiddler:

<<box-shadow shadow>>
for the x-box-shadow properties
<<filter filter>>
for the x-filter properties
<<transition transition>>
for the x-transition properties
<<transform-origin origin>>
for the x-transition-origin properties
<<background-linear-gradient gradient>>
for the x-linear-gradient values of the background-image property

The following macros are documented separately:

All these macros are defined in the $:/core/macros/CSS tiddler.

suffix Operator

3rd February 2015 at 7:27pm
purposefilter the input titles by how they end
inputa selection of titles
parameterS = a string of characters
outputthose input titles that end with S
! outputthose input tiddlers that do not end with S

In looking for matches for S, capital and lowercase letters are treated as different.

Examples

suffix Operator (Examples)

24th January 2015 at 11:39am

[suffix[.jpg]]

[tag[task]!suffix[ing]]

Sunday

18th January 2015 at 1:15pm

This example tiddler is used to illustrate some of the Filter Operators.

SystemTags

15th February 2016 at 11:51am

System tags are used to give special behaviour to tiddlers.

Available system tags

These are the available system tags

  • for elements to be placed at the top of the story river
  • for search elements
  • for alerts
  • for elements to be placed at the bottom of the story river
  • for control panel tabs
  • for control panel advanced tabs
  • for control panel appearance tabs
  • for control panel info tabs
  • for control panel settings tabs
  • for control panel toolbar customisation tabs
  • for custom preview panes
  • for the edit template
  • for the edit mode tiddler toolbar
  • for the exporters
  • for filters in advanced seach sample filter dropdown
  • for (core) images
  • for global macros
  • for tabs in the "more" sidebar
  • for the page control tools in the sidebar
  • for the main page elements
  • for colour palettes
  • for the plugin library
  • for raw markup to be included in the generated HTML file
  • for customised search results
  • for sidebar tabs
  • to indicate that a tiddler should be applied as a CSS stylesheet
  • for tiddler info panel tabs
  • for tabs under the advanced tiddler tab
  • for the style of the buttons
  • for the top left bar
  • for the top right bar
  • for the view template
  • for the view mode tiddler toolbar

System tags in use

These are the system tags in use in this wiki:

SystemTiddlers

System tiddlers are any tiddler whose title starts with $:/; such tiddlers are automatically hidden from most operations. They don't show up in lists or search results, but linking to one directly works in the usual way.

TiddlyWiki models everything as tiddlers, including its internal components and configuration. Thus, even an apparently empty TiddlyWiki actually contains dozens of tiddlers that are necessary to enable it function correctly. Using system tiddlers prevents them from confusing casual users.

The current system tiddlers are:

$:/_tw5.com-styles
$:/boot/boot.css
$:/boot/boot.js
$:/boot/bootprefix.js
$:/config/OriginalTiddlerPaths
$:/ContributionBanner
$:/core
$:/core/templates/static.content
$:/CurvedText
$:/DefaultTiddlers
$:/edition/tw5.com/dropbox-url.js
$:/editions/tw5.com/doc-macros
$:/editions/tw5.com/doc-styles
$:/editions/tw5.com/download-empty
$:/editions/tw5.com/if-macro.js
$:/editions/tw5.com/macro-examples/qualify-transcluded
$:/editions/tw5.com/macro-examples/say-hi
$:/editions/tw5.com/macro-examples/say-hi-using-variables
$:/editions/tw5.com/macro-examples/tags-of-current-tiddler
$:/editions/tw5.com/macro-examples/tv-get-export-image-link
$:/editions/tw5.com/macro-examples/tv-wikilink-tooltip
$:/editions/tw5.com/operator-macros
$:/editions/tw5.com/operator-template
$:/editions/tw5.com/railroad/macro-parameter-value
$:/editions/tw5.com/snippets/download-empty-button
$:/editions/tw5.com/style-guide-macros
$:/editions/tw5.com/TiddlerInfo/Sources
$:/editions/tw5.com/variable-macros
$:/editions/tw5.com/wikitext-macros
$:/favicon.ico
$:/GoogleAnalyticsAccount
$:/GoogleAnalyticsDomain
$:/green_favicon.ico
$:/HistoryList
$:/isEncrypted
$:/language
$:/library/sjcl.js
$:/plugins/tiddlywiki/browser-sniff
$:/plugins/tiddlywiki/evernote
$:/plugins/tiddlywiki/googleanalytics
$:/plugins/tiddlywiki/nodewebkitsaver
$:/plugins/tiddlywiki/railroad
$:/SiteSubtitle
$:/SiteTitle
$:/state/tab/sidebar--1835078512
$:/StaticBanner
$:/StoryList
$:/SVGExampleRadius
$:/temp/info-plugin
$:/theme
$:/themes/tiddlywiki/centralised
$:/themes/tiddlywiki/readonly
$:/themes/tiddlywiki/seamless
$:/themes/tiddlywiki/snowwhite
$:/themes/tiddlywiki/starlight
$:/themes/tiddlywiki/tight
$:/themes/tiddlywiki/vanilla
$:/themes/tiddlywiki/vanilla/options/sidebarlayout

TabbedExampleType

toc-tabbed-internal-nav

Table-of-Contents Macros

21st February 2015 at 10:40pm

TiddlyWiki provides several macros for generating a tree of tiddler links by analysing tags:

toc
A simple tree
toc-expandable
A tree in which all the branches can be expanded and collapsed
toc-selective-expandable
A tree in which the non-empty branches can be expanded and collapsed
toc-tabbed-internal-nav and toc-tabbed-external-nav
A two-panel browser:
  • on the left, a selectively expandable tree that behaves like a set of vertical tabs
  • on the right, the content of whichever tiddler the user selects in the tree

The difference between the last two has to do with what happens when the user clicks a link in the right-hand panel:

toc-tabbed-internal-nav
The target tiddler appears in the right-hand panel, replacing the tiddler that contained the link
toc-tabbed-external-nav
The target tiddler appears in the normal way (which depends on the user's configured storyview)

Structure

The top level of the tree consists of the tiddlers that carry a particular tag, known as the root tag. Tiddlers tagged with any of those make up the next level down, and so on.

At each level, the tiddlers can be ordered by means of the list field of the parent tag tiddler. They can also be ordered by the macro's sort parameter.

The tree displays the caption field of a tiddler if it has one, or the tiddler's title otherwise.

Each tiddler in the tree is normally displayed as a link. To suppress this, give the tiddler a toc-link field with the the value no. In the examples, the SecondThree tiddler is set up like this. Clicking such a tiddler in the tree causes its branch to expand or collapse.

The table of contents is generated as an HTML ordered list. The <ol> elements always have the class tc-toc. Expandable trees have the additional class tc-toc-expandable. Selectively expandable trees (including those in the two-panel browser) have tc-toc-selective-expandable.

To make a table of contents appear in the sidebar, see How to add a new tab to the sidebar.

Parameters

tag
The root tag that identifies the top level of the tree
sort
An optional extra filter step, e.g. sort[title]

These two parameters are combined into a single filter expression like this:

[tag[$tag$]$sort$]

toc-tabbed-internal-nav and toc-tabbed-external-nav take additional parameters:

selectedTiddler
The title of the state tiddler for noting the currently selected tiddler, defaulting to $:/temp/toc/selectedTiddler. It is recommended that this be a system tiddler
unselectedText
The text to display when no tiddler is selected in the tree
missingText
The text to display if the selected tiddler doesn't exist
template
Optionally, the title of a tiddler to use as a template for transcluding the selected tiddler into the right-hand panel

Examples

Table-of-Contents Macros (Examples)

21st February 2015 at 8:50pm

These examples derive tables of contents from the root tag Contents.

You can explore the same structure with these clickable tag pills:

The tabbed example uses the real TableOfContents of this documentation instead.

<div class="tc-table-of-contents">
<<toc "Contents">>
</div>

TableOfContents

14th April 2015 at 8:02am

Tables in WikiText

25th January 2014 at 2:46pm

Basics

TiddlyWiki5 formats tables using vertical bar characters like so:

|!Cell1 |!Cell2 |
|Cell3 |Cell3 |

Exclamation marks are used to indicate header cells. The example renders as:

Cell1Cell2
Cell3Cell3

Cell Alignment

Table cell alignment is controlled by inserting space characters before and/or after the cell content. For example:

|Left aligned content |
| Right aligned content|
| Centred content |
|+++ a very wide column so we can see the alignment +++|

The example renders as:

Left aligned content
Right aligned content
Centred content
+++ a very wide column so we can see the alignment +++

Cell vertical Alignment

Vertical alignment of cells is done by inserting either a ^ for top alignment or a , for bottom alignment as the first character of a cell. The normal horizontal alignment is still possible. For example:

|^top left |^ top center |^ top right|
|middle left | middle center | middle right|
|,bottom left |, bottom center |, bottom right|

The example renders as:

:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::
::
top lefttop centertop right::
::
::
::
middle leftmiddle centermiddle right::
::
::
::
bottom leftbottom centerbottom right::
::
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

If you need to have a ^or a , as the first character of a left aligned cell, you can use HTML escaping:

^&#94;
,&#44;

Cell Merging

To merge a table cell with the one above, use the special cell text ~. To merge a cell with the one to its left use the text <. To merge one to its right use >. For example:

|Cell1 |Cell2 |Cell3 |Cell4 |
|Cell5 |Cell6 |Cell7 |<|
|Cell5 |~|Cell7 |Cell8 |
|>|Cell9 |Cell10 |Cell11 |

Renders as:

Cell1Cell2Cell3Cell4
Cell5Cell6Cell7
Cell5Cell7Cell8
Cell9Cell10Cell11

Table Classes, Captions, Headers and Footers

Table CSS classes, captions, headers and footers can be specified as special pseudo-rows. The following example:

  • assigns the CSS classes "myclass" and "anotherClass" to the table
  • gives the table the caption "This is a caption"
  • adds a header row of cells with the text "Header"
  • adds a footer row of cells with the text "Footer"
|myclass anotherClass|k
|This is a caption |c
|Cell1 |Cell2 |
|Cell3 |Cell3 |
|Header|Header|h
|Footer|Footer|f

Renders as:

This is a caption
Cell1Cell2
Cell3Cell3
HeaderHeader
FooterFooter

tabs Macro

21st February 2015 at 9:17pm

The tabs macro presents a selection of tiddlers as a set of tabs that the user can switch between.

The tabs display the caption field of a tiddler if it has one, or the tiddler's title otherwise. If specified, the tabs display the tooltip field of a tiddler as the respective button tooltip.

By default the tabs are arranged horizontally above the content. To get vertical tabs, set the class parameter to tc-vertical.

Parameters

tabsList
A filter selecting which tiddlers to include
default
The title of the tiddler whose tab is to be selected by default
state
The prefix for the title of a state tiddler for noting the currently selected tab, defaulting to $:/state/tab. It is recommended that this be a system tiddler
class
Additional CSS classes for the generated div elements. Multiple classes can be separated with spaces
template
Optionally, the title of a tiddler to use as a template for transcluding the content of the selected tab

Within the template, the title of the selected tab is available in the currentTab variable.

The currentTiddler variable is not affected by the tabs macro.

Examples

tabs Macro (Examples)

21st February 2015 at 9:17pm

<<tabs "SampleTabOne SampleTabTwo SampleTabThree SampleTabFour" "SampleTabOne" "$:/state/tab1">>

<<tabs "[tag[sampletab]]" "SampleTabTwo" "$:/state/tab2" "tc-vertical">>

<<tabs "[tag[sampletab]nsort[order]]" "SampleTabThree" "$:/state/tab3" "tc-vertical">>

tag Macro

21st February 2015 at 10:43pm

The tag macro generates a tag pill for a specified tag.

Parameters

tag
The title of the tag, defaulting to the current tiddler

Examples

tag Macro (Examples)

21st February 2015 at 10:45pm

<<tag>>
<<tag Concepts>>

tag Operator

3rd February 2015 at 7:18pm
purposefilter the input by tag
inputa selection of titles
parameterT = the title of a tag
outputthose input tiddlers that have tag T
! outputthose input tiddlers that do not have tag T

The output is sorted using the tag's list field and the tiddlers' list-before and list-after fields.

If T is empty, the output of tag is empty, and the output of !tag is a copy of the input.

Examples

tag Operator (Examples)

24th January 2015 at 12:29pm

[tag[task]]

[tag[task]!tag[done]]

[!tag[task]]

[all[shadows]tag[$:/tags/Stylesheet]]

Tagging

12th June 2016 at 2:20pm

Tagging is a way of organising tiddlers into categories. For example, if you had tiddlers representing various individuals, you could tag them as friend, family, colleague etc to indicate these people's relationships to you.

A tag is in fact just a tiddler (or a potential tiddler), and it can have tags of its own. You can add any number of tags to the same tiddler.

See Creating and editing tiddlers for instructions on how to tag.

By tagging your tiddlers, you can view, navigate and organise your information in numerous additional ways:

  • The coloured tag pills on a tiddler give you quick access to all the other tiddlers with the same tag, as well as to the tiddler that represents the tag itself.
  • If a tiddler is serving as a tag, then the Tagging tab in its InfoPanel will show you which tiddlers are currently tagged with it.
  • The More tab of the sidebar has a Tags tab that presents an overview of all your tags and lets you access all your tagged tiddlers.
  • You can use filters to create lists of tiddlers based on their tags. You can then display any combination of the fields of those tiddlers. For example, you could build a glossary by listing the title and text of all tiddlers tagged Glossary. Such lists can be formatted in any way you wish: e.g. bulleted, numbered or comma-separated.
  • There are a number of special system tags that control the layout of tiddlers and the entire TiddlyWiki page. See Page and tiddler layout customisation for instructions.

There are two more things you can do with tags:

Set a tag's colour and icon

You can use the tag manager, found on the Tags tab under More in the sidebar, to change the colour of a tag's pill or add an icon to the pill.

  • To change the colour, click the button in the Colour column to select from a colour picker. Alternatively, click the icon in the Info column, then type a CSS colour value in the Colour field
  • To change the icon, click the button in the Icon column and choose from the list of available icons

Change the order in which tags are listed

By default, tagged tiddlers are listed in alphabetical order.

If you want any other order, add a list field to the tag tiddler, and set its value to be a list of the tiddlers in that order.

The list field doesn't have to mention all of the tiddlers. See the precise rules TiddlyWiki uses to order tagged tiddlers.

tagging Operator

3rd February 2015 at 7:16pm
purposefind the tiddlers that have the input tags
inputa selection of tags
parameternone
outputthe titles of any tiddlers that carry the input tags

Each input tag is processed in turn. The list of tiddlers carrying that tag is generated, sorted, and then dominantly appended to the operator's overall output.

Examples

tagging Operator (Examples)

24th January 2015 at 1:36pm

[[task]tagging[]]
→ same as [tag[task]]

Concepts task +[tagging[]]
→ tiddlers that are tagged Concepts or task

[all[current]tagging[]]
→ tiddlers tagged with the current one

tags Operator

3rd February 2015 at 7:16pm
purposeselect all tags of the input tiddlers
inputa selection of titles
parameternone
outputall the tags carried by the input tiddlers

Each input title is processed in turn. The corresponding tiddler's tags are retrieved (in order of appearance in the tags field) and then dominantly appended to the operator's output.

Examples

tags Operator (Examples)

24th January 2015 at 1:42pm

[[Filter Operators]tags[]]

[all[shadows]tags[]]

[all[shadows+tiddlers]tags[]sort[]]

TagTiddlers

17th September 2015 at 8:37pm

A tag tiddler is any tiddler that is in use as a tag.

The Tagging tab on the InfoPanel of a tag tiddler shows which tiddlers are tagged with the tag tiddler.

A tag can be used without a corresponding tag tiddler.

task

1st June 2016 at 5:53pm

This tag identifies the tasks for the TaskManagementExample

TaskManagementExample

19th September 2014 at 5:14pm

TiddlyWiki5 can be used as a simple task management system without further customisation. The idea is that tasks be tagged task, with those that are completed also tagged done. In this way it is straightforward to generate task lists.

Outstanding tasks

Completed tasks

Technical Prose Style

17th January 2015 at 3:25pm

When writing an instruction tiddler, start by planning a route through the information you wish to present. This should be a simple, logical, direct progression of thoughts, with no backtracking or forward references. Use this approach even within individual sentences: always proceed from cause to effect, from the old or known to the new or unknown.

Keep sentences short and simple. A clear technical sentence seldom contains more than one idea. It therefore avoids parenthetical information. Similarly, keep paragraph structure simple. A flat presentation is often easier to understand than a hierarchical one.

It is often possible to simplify a sentence without changing its meaning, merely by adjusting its vocabulary or grammatical structure. "Execution of the macro is performed" just means "The macro runs". "Your expectation might be..." just means "You might expect...".

Prefer the active voice by default: "Jane creates a tiddler" rather than "a tiddler is created by Jane". The passive voice can be useful if you want the reader to focus on the action itself or its result: "a tiddler is created". But it can often be clearer to proceed from cause to effect and say "this creates a tiddler" in the active voice.

Documentation often presents two items that are parallel either by similarity or by difference. The reader will more easily detect such a pattern if you use the same sentence or phrase structure for both. But this must be balanced with the need to avoid monotony.

Prefer precise instructions over woolly descriptions. If something has a name, use it. If something lacks a name, give it a tiddler.

TemplateTiddlers

20th February 2015 at 4:09pm

A template tiddler is not actually a type of tiddler, it is a role in which a tiddler can be used.

Templates are a way to re-use chunks of WikiText.

Transcluding through a template extends the basic functionality of Transclusion by combining two tiddlers:

  • A template tiddler that contains the WikiText to be displayed. It can contain transclusions that reference fields in the current tiddler
  • A target tiddler that identifies which tiddler is to be treated as current when resolving references to fields

The best example of templating is the main story river in TiddlyWiki. Each tiddler in the story river is rendered through a ViewTemplate that specifies how each field is to be rendered.

See Transclusion with Templates for details.

Ten reasons to switch to TiddlyWiki

14th April 2015 at 8:16am
  1. With TiddlyWiki you can organise your notes your way, not their way. Your notes conform to your way of thinking rather than being forced into a hierarchical straightjacket of notebooks and tabs
  2. TiddlyWiki's nonlinear approach will actually make you think about your information in new and helpful ways
  3. Finding your notes in TiddlyWiki is lightning fast
  4. There are many ways to customise and adapt every aspect of TiddlyWiki
  5. TiddlyWiki is free and is compatible with all platforms. Any web browser will open it. You don't need to purchase an expensive program or pay a subscription fee to use it
  6. TiddlyWiki files promote the free sharing of information. There are many ways you can share your information from TiddlyWiki
  7. With TiddlyWiki, your information is yours, and you store it where you want to - on your device, on a USB stick, in Dropbox, on your server
  8. TiddlyWiki features an ever-growing number of plugins, themes, widgets, and languages
  9. The online TiddlyWiki community is friendly and will do their best to give you the help you need
  10. If you are a programmer, you have even more ways to play with TiddlyWiki. With TiddlyWiki, the more you know, the more fun you can have with it

Text-Slicer Edition

2nd June 2016 at 6:15am

The Text-Slicer edition of TiddlyWiki contains tools to help advanced users slice long texts up into individual tiddlers.

http://tiddlywiki.com/editions/text-slicer/

TextReference

18th May 2015 at 7:06pm

A TextReference identifies a chunk of text from a tiddler that can be retrieved or modified depending on the context.

Text references are made up of several parts, most of which can be optional:

  • tiddlerTitle - the text field of the specified tiddler
  • tiddlerTitle!!field - a tiddler field (eg, modified, modifier, type etc)
  • !!field - a field of the current tiddler
  • tiddlerTitle##propertyIndex - extracts a named property from DataTiddlers

Text references can be used in several places:

TextWidget

19th January 2014 at 8:37am

Introduction

The text widget displays plain text.

Content and Attributes

The content of the <$text> widget is not used.

AttributeDescription
textThe text to display

The Extended Listops Filters

8th November 2015 at 5:49am

Introduction

A number of extended filters are necessary to manipulate lists.

The first set of filters are designed to move items from the tail of the list and insert them at specified locations in the list. Items are often appended to the list before using these filters. In general, these filters accept a suffix specifying the number of items to move (default to 1.)

A second set of filters are designed to either add or remove from the list, a selected range of items from an array. These filters are best used with a reference to an array, stored in a field or data index elsewhere in the wiki (they may be used with a simple list of items, provided the items do not include white space.) In general, these filters accept a suffix specifying the number of items to move (default to All.)

Examples

In this example we shall populate the 'DataIndex' index of the tiddler 'MyData' with the names of the days of the week, then clear this list.

<$button>
<$action-listops $tiddler="ListopsData" $index="DataIndex" $filter="[list[Days of the Week]]"/>
Get days-of-the-week
</$button> 
<$button>
<$action-listops $tiddler="ListopsData" $index="DataIndex" $filter="[[]]"/>
Clear
</$button>

{{ListopsData}}

That renders as:

DataIndex: 

In this example we shall slice the populated list from the 'DaysOfTheWeek' index of the tiddler 'MyData' in order to insert items before and after a marker item (Wednesday) that are first appended to the list.

<$button>
<$action-listops $tiddler="ListopsData" $index="DataIndex" $subfilter="one two +[putbefore:2[Wednesday]]"/>
Put 2 Items Before Wednesday
</$button> 
<$button>
<$action-listops $tiddler="ListopsData" $index="DataIndex" $subfilter="four five +[putafter:2[Wednesday]] three +[putbefore[Wednesday]]"/>
Put One Item Before & Two Items After Wednesday
</$button>

{{ListopsData}}

That renders as:

DataIndex: 

In this example we shall slice the populated list from the 'DaysOfTheWeek' index of the tiddler 'MyData' in order to replace the marker item (Wednesday) with items which are first appended to the list. We shall then move 3 items to the head of the list which have first been appended to the list from referenced fields.

<$button>
<$action-listops $tiddler="ListopsData" $index="DataIndex" $subfilter="[[---o]] [[o---]] +[replace:2{!!marker}]"/>
Replace '!!marker' with 2 Items
</$button>
<$button>
<$action-listops $tiddler="ListopsData" $index="DataIndex" $subfilter="[{!!item1}] [{!!item2}] [{!!item3}] +[putfirst:3[]]"/>
Put 3 Items First
</$button>

{{ListopsData}}

That renders as:

DataIndex: 

In this example we shall slice the populated list from the 'DaysOfTheWeek' index of the tiddler 'MyData' in order to append to the truncated list, items from a referenced field. We shall then remove the first two of the items added.

|list: |<$view field="list"/> |

<$button>
<$action-listops $tiddler="ListopsData" $index="DataIndex" $subfilter="+[allbefore:include[Wednesday]] +[prepend{!!list}]"/>
Prepend '!!list' to items before 'Wednesday'
</$button> 
<$button>
<$action-listops $tiddler="ListopsData" $index="DataIndex" $subfilter="+[remove:2{!!list}]"/>
Remove first two items in '!!list' from current list
</$button>
<$button>
<$action-listops $tiddler="ListopsData" $index="DataIndex" $subfilter="+[!remove:1{!!list}]"/>
Remove last item in '!!list' from current list
</$button>

{{ListopsData}}

That renders as:

list:Yesterday Today Tomorrow

DataIndex: 

In this example we shall populate the list with numbers, then move items one by one from the head to the tail and from the tail to the head (best seen by clicking the lower buttons several times.)

This example illustrates that the append[] and prepend[] operators do not enforce unique instances of an item and that, with the next run, any duplicates are removed.

<$button>
<$action-listops $tiddler="ListopsData" $index="DataIndex" $filter="[[]]" $subfilter="+[append:3{!!numbers}]"/>
Setup some numbers
</$button>
<$button>
<$action-listops $tiddler="ListopsData" $index="DataIndex" $subfilter="+[!append:6{!!numbers}]"/>
Append more numbers
</$button>

<$button>
<$action-listops $tiddler="ListopsData" $index="DataIndex" $subfilter="+[putfirst:2[]]"/>
Move last 2 items to the head
</$button>
<$button>
<$action-listops $tiddler="ListopsData" $index="DataIndex" $subfilter="+[putlast[]]"/>
Move the head to the last item
</$button>

{{ListopsData}}

That renders as:

DataIndex: 

The First Rule of Using TiddlyWiki

19th September 2014 at 4:44pm

Horror Stories

Every so often, TiddlyWiki users report heart-rending tales of personal data loss on the discussion groups:

My entire TiddlyWiki has just been wiped out when Firefox crashed during saving a tiddly.

https://groups.google.com/d/topic/tiddlywiki/oG2L7OXhUoI/discussion

Last time I used it was last night at home on my Windows 7 desktop, hit the check mark to stop editing my last entry, it then saves via TiddlyFox and I eject my USB drive. I came to work this morning, plugged in my USB, enter my TW5 password and it doesn't want to open after several attempts. I browse to my TW5 html file and notice that my file size is no longer 3MB.. instead it is 80KB. This leads me to believe I lost everything.

https://groups.google.com/d/topic/tiddlywiki/SXStDJ0ntGI/discussion

Don't let it happen to you!

The first rule of using TiddlyWiki is:

Backup your data!

TiddlyWiki is a very flexible, customisable system that puts you firmly in charge of your own data. Every care is taken in TiddlyWiki's development to ensure that it is a safe place to preserve your most valuable data but the ultimate responsibility to reduce the risk of data loss falls to users.

The best way to make sure that your data is safe is to practise a rigorous system of backups:

  • Consider using services like Dropbox to continuously back up your personal data to the cloud. (Dropbox has a neat feature whereby they keep track of previous versions of files)
  • Retain backups before upgrading to a new version of TiddlyWiki
  • Figure out and protect yourself from the worst case scenarios: what if your USB stick or hard drive fails? What if your computer is hit by a ransomeware virus?
  • Be defensive and redundant: for example, take multiple backups and keep them in separate physical locations

Third

21st February 2015 at 7:46pm

This is an example tiddler. See Table-of-Contents Macros (Examples).

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

ThirdOne

21st February 2015 at 7:46pm

This is an example tiddler. See Table-of-Contents Macros (Examples).

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

ThirdThree

21st February 2015 at 7:46pm

This is an example tiddler. See Table-of-Contents Macros (Examples).

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

ThirdTwo

21st February 2015 at 7:46pm

This is an example tiddler. See Table-of-Contents Macros (Examples).

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

thumbnail Macro

25th March 2015 at 5:23pm

The thumbnail macros are used to create linkable thumbnail panels.

Parameters

(none)

Examples

thumbnail Macro (Examples)

25th March 2015 at 5:21pm

Examples

Here is an example of the thumbnail-right macro used to create a video thumbnail that floats to the right of the text

<<thumbnail-right link:"Introduction Video" image:"Introduction Video Thumbnail.jpg" caption:"Introduction to ~TiddlyWiki" icon:"{{$:/core/images/video}}" color:"red">>
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

Thursday

24th January 2015 at 8:42pm

This example tiddler is used to illustrate some of the Filter Operators.

before and after

These examples make use of the Days of the Week tiddler.

[list[Days of the Week]before{!!title}]

[list[Days of the Week]after{!!title}]

Tiddler Fishes.svg

Tiddler Poster.png

Tiddler Structure

17th January 2015 at 3:25pm

In accordance with the Philosophy of Tiddlers, documentation tiddlers are typically short and interlinked.

When a tiddler seems as if it needs to contain subheadings, this is often a sign that it should in fact be split into several tiddlers. But it is reasonable for a reference tiddler to consist of an untitled introductory section followed by a titled section of details.

Consistency of terminology is essential if the reader is not to become confused. Consistent typography and punctuation lend a professional quality to the documentation. Macros can improve the consistency and maintainability of the text.

Use numbered lists for step-by-step instructions, and bullet points for lists whose order is arbitrary. Use a definition list in preference to a bulleted list if each bulleted item would begin with a term and a colon. If at all possible, avoid burdening the reader with a nested list.

Use a table when information naturally falls into three or more columns, and also for lists of parameters, attributes, etc in reference tiddlers.

The documentation describes the current reality of TiddlyWiki. Avoid discussing future aspirations.

Tiddler Title Policy

18th January 2015 at 6:36pm

Many documentation tiddlers, especially the reference ones, are concerned with a single concept. Their titles should be succinct noun phrases like List Widget or Tiddler Fields.

Each of the main words of such a title begins with a capital letter. Minor words such as "and", "or", "the", "to" and "with" do not.

Tags also follow this pattern.

Titles of this kind are plural if they denote a category of items, e.g. Keyboard Shortcuts or Tiddler Fields. Such titles are used to tag more specific tiddlers within the category.

Where a concept is an item rather than a category, its tiddler has a singular title, e.g. List Widget, tag Operator.

Start a title with its most distinctive part. For instance, the tiddlers documenting the filter operators have titles like addprefix Operator. This helps the reader scan a list of links to find a particular tiddler.

Avoid starting a title with the word "the".

In the past, many tiddlers had CamelCase titles. This is gradually being phased out of the documentation to improve readability. CamelCase titles should no longer be used, even for tags, except in cases like JavaScript where that is the standard spelling.

Instruction tiddlers often have longer titles that can be more complicated than just a noun phrase, e.g. Ten reasons to switch to TiddlyWiki. These titles use sentence case, i.e. only the first word (and any proper names) starts with a capital letter.

How-to tiddlers have titles that begin with "How to", e.g. How to edit a tiddler. Avoid titles like Editing tiddlers, because a less fluent English speaker could misunderstand that as the name of a category of tiddlers.

TiddlerFields

10th June 2016 at 9:10am

TiddlerFields are name:value pairs that make up a tiddler. Field names must be lowercase letters, digits or the characters - (dash), _ (underscore) and . (period).

The standard fields are:

Field NameReferenceDescription
titleTitleFieldThe unique name of a tiddler
textTextFieldThe body text of a tiddler
modifiedModifiedFieldThe date and time at which a tiddler was last modified
modifierModifierFieldThe tiddler title associated with the person who last modified a tiddler
createdCreatedFieldThe date a tiddler was created
creatorCreatorFieldThe name of the person who created a tiddler
tagsTagsFieldA list of tags associated with a tiddler
typeTypeFieldThe content type of a tiddler
listListFieldAn ordered list of tiddler titles associated with a tiddler
captionCaptionFieldThe text to be displayed on a tab or button

Other fields used by the core are:

Field NameReferenceDescription
colorColorFieldThe CSS color value associated with a tiddler
descriptionDescriptionFieldThe descriptive text for a plugin, or a modal dialogue
draft.ofDraftOfFieldFor draft tiddlers, contains the title of the tiddler of which this is a draft
draft.titleDraftTitleFieldFor draft tiddlers, contains the proposed new title of the tiddler
footerFooterFieldThe footer text for a wizard
libraryLibraryFieldIf set to "yes" indicates that a tiddler should be saved as a JavaScript library
nameNameFieldThe human readable name associated with a plugin tiddler
plugin-priorityPluginPriorityFieldA numerical value indicating the priority of a plugin tiddler
plugin-typePluginTypeFieldThe type of plugin in a plugin tiddler
sourceSourceFieldThe source URL associated with a tiddler
subtitleSubtitleFieldThe subtitle text for a wizard

The TiddlyWebAdaptor uses a few more fields:

Field NameReferenceDescription
bagBagFieldThe name of the bag from which a tiddler came
revisionRevisionFieldThe revision of the tiddler held at the server

See the Advanced > Tiddler Fields tab of the control panel for details of the fields used in this wiki.

TiddlerFiles

16th February 2015 at 5:17pm

Tiddlers can be stored in text files in several different formats. Files containing single tiddlers can also have an auxiliary .meta file formatted as a sequence of name:value pairs:

title: TheTitle
modifier: someone

TiddlyWeb-style .tid files

These files consist of a sequence of lines containing name:value pairs, a blank line and then the text of the tiddler. For example:

title: MyTiddler
modifier: Jeremy

This is the text of my tiddler.

Note that many text editors require that files include a terminating newline. If you want to avoid including the terminating newline in the text of the tiddler you can use this alternative syntax:

title: MyTiddler
modifier: Jeremy
text: This is the text of my tiddler.

The ContentType application/x-tiddler is used internally for these files

TiddlyWiki <DIV> .tiddler files

In TiddlyWiki 5, *.tiddler files look like this:

<div title="AnotherExampleStyleSheet" modifier="blaine" created="201102111106" modified="201102111310" tags="examples" creator="psd">
<pre>Note that there is an embedded <pre> tag, and line feeds are not escaped.

And, weirdly, there is no HTML encoding of the body.</pre>
</div>

These *.tiddler files are not exactly the same as the tiddlers inside a TiddlyWiki HTML file where they are HTML encoded.

Older *.tiddler files more closely matched the store format used by TiddlyWiki at the time:

<div tiddler="AnotherExampleStyleSheet" modifier="JeremyRuston" modified="200508181432" created="200508181432" tags="examples">This is an old-school .tiddler file, without an embedded &lt;pre&gt; tag.\nNote how the body is &quot;HTML encoded&quot; and new lines are escaped to \\n</div>

The ContentType application/x-tiddler-html-div is used internally for these files

TiddlyWeb-style JSON files

These files are a straightforward array of hashmaps of name:value properties. All field values must be specified as strings.

For example:

[
	{
		"title": "First Tiddler",
		"text": "Text of first tiddler",
		"tags": "one two [[t h r e e]]"
	},{
		"title": "Second Tiddler",
		"text": "Text of second tiddler",
		"modified": "20150216171751154"
	}
]

The ContentType application/json is used internally for these files

TiddlyWiki HTML files

TiddlyWiki HTML files contain a collection of tiddlers encoded in <DIV> format.

For TiddlyWiki to import an unencrypted HTML file, it requires a <div id="storeArea"> containing tiddler DIVs as explained above. For example:

<div id="storeArea">
<div created="20130302085406905" modified="20130302084548184" tags="Examples" title="A tiddler title">
<pre>HTML encoded text of tiddler
</pre>
</div>
<div created="20140315085406905" modified="20140321084548184" tags="One Two [[Three with Space]]" title="Another title" customfield="field value">
<pre>Text of this tiddler
</pre>
</div>
</div>

TiddlerLinks

31st December 2014 at 9:33am

Links are regions of a tiddler that can be clicked to cause navigation to a different tiddler. The navigation behaviour is determined by the current StoryView; the classic TiddlyWiki view displays the story as a linear sequence of tiddlers.

Holding the control or command key while clicking on a tiddler link opens the target tiddler but doesn't navigate to it. This can be a useful way of queueing up tiddlers to be read later.

Links are useful for modelling organic relationships between tiddlers, and particularly for expressing the navigational paths between tiddlers.

The InfoPanel lists incoming links to a tiddler in the tab References.

Filters can include the following filter operators that work with links:

  • [links[]] - returns the titles of the tiddlers that are linked from the currently selected tiddler(s)
  • [backlinks[]] - returns the titles of the tiddlers that link to the currently selected tiddler(s)

TiddlyWiki5 alters the appearance of tiddler links to convey additional information about the target of the link:

Link descriptionLink appearance
To a tiddler that existsLikeThis
To a tiddler that doesn't existLikeThis
To a shadow tiddler that has not been overriddenLikeThis
To a shadow tiddler that has been overridden by an ordinary tiddlerLikeThis

External links are shown like this: http://tiddlywiki.com/ or like this.

Tiddlers

21st November 2014 at 11:17am

Tiddlers are the fundamental units of information in TiddlyWiki. Tiddlers work best when they are as small as possible so that they can be reused by weaving them together in different ways.

A "tiddler" is an informal British word meaning a small fish, typically a stickleback or a minnow. Other systems have analogous concepts with generic names like "items", "entries", "entities", "nodes" or "records". TiddlyWiki takes the view that it is better to be confusingly distinctive than confusingly generic.

Internally, tiddlers are a list of uniquely named values called fields. The only field that is required is the title field, but useful tiddlers also have a text field, and some or all of the standard fields listed in TiddlerFields.

Tiddlers are ubiquitous in TiddlyWiki. They are used to store everything from JavaScript code modules to the settings and state associated with the user interface.

TiddlerWidget

20th February 2015 at 4:21pm

Introduction

The TiddlerWidget sets the current tiddler that applies for processing its content.

Content and Attributes

AttributeDescription
tiddlerThe title of the tiddler to become the new current tiddler
classCSS classes to be added to the generated elements

CSS Class Variables

The tiddler widget assigns several useful CSS classes to variables that it creates:

missingTiddlerClass
tc-tiddler-exists or...
tc-tiddler-missing depending on whether the tiddler exists
shadowTiddlerClass
tc-tiddler-shadow if the tiddler is a shadow tiddler
systemTiddlerClass
tc-tiddler-system if the tiddler is a system tiddler
tiddlerTagClasses
a space separated list of CSS classes named tc-tagged-{tagname},
e.g. tc-tagged-introduction

Note: tag names are URI encoded which means that the tag $:/tags/Macro appears as the CSS class tc-tagged-%24%3A%2Ftags%2FMacro. See How to apply custom styles by tag for more details

You can use these variables like this:

<$tiddler tiddler="MyOtherTiddler">
<div class=<<missingTiddlerClass>>>
<$transclude/>
</div>
</$tiddler>

See also $:/core/ui/ViewTemplate.

TiddlyChrome by Arlen Beiler

22nd April 2016 at 3:36pm

An extension application for Google Chrome that enables TiddlyWiki to save changes directly to the file system.

https://github.com/Arlen22/tiddly-chrome-app/

TiddlyClip by buggyjay

10th September 2014 at 11:28am

BuggyJay's TiddlyClip browser extension for Firefox permits clipping of text and graphics from web pages:

http://tiddlyclip.tiddlyspot.com

TiddlyClip allows parts of webpages to be clipped into a TiddlyWiki, and consists of two parts, the browser addon and the TiddlyWiki plugin. The addon is completely memoryless, any configuration is determined by the current TiddlyWiki that the user has select to work with (we say that the addon is docked to the TiddlyWiki). TiddlyClip is designed to work (in a basic mode) without configuration. Once the addon and plugin are installed, all the user has to do is select which TW to dock to.

TiddlyDesktop

7th January 2016 at 11:09pm

TiddlyDesktop is an app for working with TiddlyWiki files (both TiddlyWikiClassic and TiddlyWiki version 5). It can be installed on Windows, Mac OS X or Linux. It is compatible with TiddlyWiki version 5 and the older TiddlyWikiClassic.

See the Introducing TiddlyDesktop Video

Instructions

  1. Install the latest release of TiddlyDesktop from https://github.com/Jermolene/TiddlyDesktop/releases
  2. Run TiddlyDesktop
  3. Use the browse button to open TiddlyWiki files
  4. Save changes within TiddlyWiki in the usual way

Source

TiddlyDesktop is based on the OpenSource project NW.js. The source is on GitHub:

https://github.com/Jermolene/TiddlyDesktop/

See TiddlyDesktop Releases

TiddlyDesktop Release 0.0.1

19th April 2015 at 4:21pm

Download from GitHub

First release - use with extreme caution

TiddlyDesktop Release 0.0.2

19th April 2015 at 4:42pm

Download from GitHub

See GitHub for detailed change history of this release

This second version of TiddlyDesktop has the following fixes and improvements:

  • The saving mechanism is now TiddlyFox compatible, so TiddlyWiki5 wikis don't need a special plugin to work with TiddlyDesktop
  • TiddlyDesktop is now compatible with TiddlyWiki Classic
  • Chromium Developer Tools now accessible via a pulldown menu
  • Each TiddlyWiki document is now sandboxed, so it isn't possible for malicious or buggy JavaScript to affect other documents
  • Linux 32-bit and 64-bit builds

TiddlyDesktop Release 0.0.3

19th April 2015 at 4:42pm

Download from GitHub

See GitHub for detailed change history of this release

This third version of TiddlyDesktop has the following fixes and improvements:

  • Access Chromium developer tools with F12
  • No menu bars
  • Fixed problem with paths containing spaces
  • Enabled webkit experimental features
  • Adjusted the main window toolbar to be position: sticky
  • Fixed problem with relative inter-wiki links not working
  • Add "file not found" error indication

TiddlyDesktop Release 0.0.4

19th April 2015 at 4:48pm

Download from GitHub

See GitHub for detailed change history of this release

This release includes a major reworking of the internals of TiddlyDesktop.

Please report any problems or suggestions via GitHub issues, or post to the TiddlyWiki discussion group:

http://groups.google.com/group/TiddlyWiki

New Features

  • Warning message when closing windows with unsaved changes (TWC and TW 5.1.8 and above only)
  • Help window
  • Toolbar for TiddlyWiki windows
  • Reveal original file in Finder/Explorer
  • Automatic backups

Note that there is currently no way to hide the toolbar for TiddlyWiki windows. This will be remedied soon!

New Architecture

TiddlyDesktop itself is now an instance of the Node.js edition of TiddlyWiki. TiddlyWiki HTML files are run within embedded, sandboxed iframes with the "backstage" TiddlyWiki providing services such as saving to the file system.

The advantage of this approach is that the user interface and functionality of the desktop application can now be customised and extended with exactly the same techniques that are used in regular TiddlyWiki.

Coming Soon

The functionality of this release barely matches that of the previous v0.0.3 version, but it lays the groundwork for a number of other features such as:

  • Configurable toolbars
  • Hyperbookmarklets
  • Page zoom
  • Creating new wikis from standard editions and custom templates
  • Dragging _canonical_uri links from the file system
  • Multiple languages
  • One-click copying of text to the clipboard from within TiddlyWiki
  • Global keyboard shortcut for clipping content etc.

TiddlyDesktop Release 0.0.5

26th October 2015 at 5:13pm

Download from GitHub

See GitHub for detailed change history of this release

This is an important bug fix release.

Please report any problems or suggestions via GitHub issues, or post to the TiddlyWiki discussion group:

http://groups.google.com/group/TiddlyWiki

  • Upgraded to the latest stable v12.0.3 of nw.js, fixing a number of bugs in the process, including one that prevented v0.0.4 from being used successfully under Windows
  • Added a warning about disrupting the backstage wiki
  • Switched to using "Settings" instead of "Control Panel", to reduce confusion with TiddlyWiki's control panel
  • Updated app icon
  • Cleaned up TiddlyWiki build products, fixing #67

TiddlyDesktop Release 0.0.6

29th October 2015 at 5:13pm

Download from GitHub

See GitHub for detailed change history of this release

A minor bug fix release.

Please report any problems or suggestions via GitHub issues, or post to the TiddlyWiki discussion group:

http://groups.google.com/group/TiddlyWiki

  • Added ability to drag and drop TiddlyWiki files into the wiki list window from Windows Explorer/Mac Finder
  • Fixed bug triggered by moving TiddlyDesktop executable after first running it
  • Added custom user agent string identifying TiddlyDesktop
    • eg Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.76 Safari/537.36 TiddlyDesktop/0.0.6

TiddlyDesktop Release 0.0.7

5th January 2016 at 7:03pm

Download from GitHub

See GitHub for detailed change history of this release

Please report any problems or suggestions via GitHub issues, or post to the TiddlyWiki discussion group:

http://groups.google.com/group/TiddlyWiki

  • Experimental support for "wiki folders" (the Node.js format for TiddlyWiki, where each tiddler is a separate file), including the ability to serve wiki folders over HTTP so that you can use any browser or device to access them
  • Switched from representing wikis as thumbnails to favicons
  • New system tray/menu icon for quick access to TiddlyDesktop
  • Fixed problem with restarting after quitting with minimised windows on Windows (#77)
  • Added TiddlyDesktop version number to "Help" window

Note: Upgrading to this release will clear your list of loaded wiki files. The files themselves are not affected; you can re-add them by dragging and dropping them into the wiki list window.

TiddlyDesktop Release 0.0.8

5th January 2016 at 7:04pm

Download from GitHub

See GitHub for detailed change history of this release

A minor bug fix release.

Please report any problems or suggestions via GitHub issues, or post to the TiddlyWiki discussion group:

http://groups.google.com/group/TiddlyWiki

  • Fixes crash when clicking on external links
  • Added warning when attempting to remove a wiki folder window that has been opened

TiddlyDesktop Releases

2nd June 2016 at 5:35am

Here are the details of recent releases of TiddlyDesktop

TiddlyDesktop Release 0.0.8

Released 6th December 2015 at 00:00

Download from GitHub

See GitHub for detailed change history of this release

A minor bug fix release.

Please report any problems or suggestions via GitHub issues, or post to the TiddlyWiki discussion group:

http://groups.google.com/group/TiddlyWiki

  • Fixes crash when clicking on external links
  • Added warning when attempting to remove a wiki folder window that has been opened

TiddlyFox

1st June 2016 at 5:01pm

TiddlyFox is an extension for Firefox that allows standalone TiddlyWiki files to save their changes directly to the file system. TiddlyFox works on both desktop and smartphone versions of Firefox. See Saving with TiddlyFox or Saving with TiddlyFox on Android for detailed instructions.

TiddlyFox can be downloaded from the Mozilla Addons site:

https://addons.mozilla.org/en-GB/firefox/addon/tiddlyfox/

You can also install the latest development version of TiddlyFox direct from GitHub:

https://github.com/TiddlyWiki/TiddlyFox/raw/master/tiddlyfox.xpi

TiddlyIE

11th December 2013 at 10:42pm

TiddlyIE is an extension for Internet Explorer that allows standalone TiddlyWiki files to save their changes directly to the file system. TiddlyIE works with the desktop version of Internet Explorer.

See Saving with TiddlyIE.

TiddlyMap Plugin by Felix Küppers

22nd November 2014 at 9:38am

An interactive network visualisation plugin based on Vis.js. A demo that also contains installation instructions can be found here: http://tiddlymap.org. The plugin's GitHub repository can be found here.

TiddlyMap is a TiddlyWiki plugin that allows you to link your wiki-topics (tiddlers) in order to create clickable graphs. By creating relations between your topics you can easily do the following:

  • Create concept maps and quickly manifest your ideas in tiddlers.
  • Create task-dependency graphs to organize and describe your tasks.
  • Visualize your topic structures to get an immediate grasp of topics and relations.

In general you may create, visualize and describe any network-structure you have in mind.

TiddlySpace

30th August 2013 at 9:42am

TiddlySpace is an environment for discourse on the web, built from TiddlyWeb.

TiddlySpace was originally sponsored by Osmosoft at BT.

TiddlyWeb

30th August 2013 at 9:43am

TiddlyWeb is a server application that puts Tiddlers on the web:

http://tiddlyweb.com/

TiddlyWeb can be used to host TiddlyWiki and TiddlyWiki5 wikis, making the individual tiddlers available over a flexible HTTP API.

TiddlyWeb was originally sponsored by Osmosoft at BT (along with TiddlySpace).

TiddlyWiki

25th March 2015 at 10:26pm

TiddlyWiki is a rich, interactive tool for manipulating complex data with structure that doesn't easily fit into conventional tools like spreadsheets or wordprocessors.

TiddlyWiki is designed to fit around your brain, helping you deal with the things that won't fit. The fundamental idea is that information is more useful and reusable if we cut it up into the smallest semantically meaningful chunks – tiddlers – and give them titles so that they can be structured with links, tags, lists and macros. Tiddlers use a WikiText notation that concisely represents a wide range of text formatting and hypertext features. TiddlyWiki aims to provide a fluid interface for working with tiddlers, allowing them to be aggregated and composed into longer narratives.

People love using TiddlyWiki. Because it can be used without any complicated server infrastructure, and because it is open source, it has bought unprecedented freedom to everyone to keep their precious information under their own control.

TiddlyWiki was originally created by JeremyRuston and is now a thriving open source project with a busy Community of independent developers.

TiddlyWiki Camp Paris

12th June 2015 at 11:01am

The first TiddlyWiki Camp Paris was held on Saturday 6th June 2015.

http://paris.twcamp.info

Bienvenue sur le site du TiddlyWiki Camp. Un évènement pour rencontrer la communauté de ce logiciel Open Source, libre et gratuit. Découvrez ce bloc note personnel polyvalent et adoptez-le pour gérer votre quotidien !

TiddlyWiki Classic.png

TiddlyWiki European Meetup 2016

12th July 2016 at 1:15pm

http://tiddlywiki.com/tiddlywiki-eu-meetup-2016/

Here's the stream of day 1:

Here's day 2:

TiddlyWiki extensions for Sublime Text 3 by roma0104

24th April 2016 at 1:17pm

TiddlyWiki Hangouts

12th September 2014 at 4:03pm

The TiddlyWiki community holds regular Google Hangouts, usually every Tuesday from 4pm to 6pm (UK time). They are announced in the TiddlyWiki Google group and on the TiddlyWiki Twitter account.

Past Hangouts are archived in this YouTube playlist:

TiddlyWiki in the Sky for TiddlyWeb

12th April 2015 at 7:55pm

TiddlyWiki in the Sky for TiddlyWeb allows content to be synchronised between TiddlyWiki running in the browser and a TiddlyWeb (or TiddlySpace) server. Features include:

  • Lazy loading
  • Two way synchronisation between the browser and the server
    • Synchronising from the server is accomplished by polling (currently every 60 seconds)
  • Throttling so that rapidly changing tiddlers don't overwhelm the server

To try out TiddlyWiki in the Sky for TiddlyWeb:

  1. If necessary, create an account at http://tiddlyspace.com/
  2. Create a new space, eg <myspace>
  3. Include the space tw5tiddlyweb
  4. Visit http://<myspace>.tiddlyspace.com/tw5

TiddlyWiki Jingle by Måns Mårtensson

30th June 2015 at 9:51pm

A catchy jingle for TiddlyWiki.

https://musescore.com/node/796056

Even if it sounds like some ol' jazz tune it IS an original composition and it should be quite obvious that the "hook of the melody" is a trill made by singing Tidd-ly Wiki :-).

My lacking skills for writing text/lyrics should be apparent in the fact that the text consists of 12 Tidd-ly Wikis and some extra "tiddly's" - just for the sake of getting the message delivered ;-)...

I've recorded every instrument on my guitar via a guitar synth on a loop machine (except for the drums - they were played live/in sync with the loop station on a "BeatBuddy" drum pedal..) - no pc was involved..

TiddlyWiki on Firefox for Android Video

12th September 2014 at 4:03pm

This brief screencast shows how to setup Firefox for Android so you can save changes to TiddlyWiki:

TiddlyWiki on Node.js

12th April 2015 at 7:54pm

Running TiddlyWiki on Node.js brings several important benefits over and above the single file version:

  • You can edit your content on any suitably compatible HTML5 browser, including smartphones and tablets
  • Individual tiddlers are stored in separate files, which you can organise as you wish
  • The ability to build multiple wikis that blend different combinations of shared and unique content

For more information see:

TiddlyWiki Releases

19th April 2015 at 5:33pm

Here are the details of recent releases of TiddlyWiki5. See TiddlyWiki5 Versioning for details of how releases are named.

(BetaReleases and AlphaReleases are listed separately).

Release 5.1.12

Released 13th July 2016 at 11:47

See GitHub for detailed change history of this release

Major Improvements

New Editor Toolbars

Added support for extensible formatting toolbars for the editor widgets.

  • Formatting operations for WikiText, with support for Markdown:
    • Character formatting operations for bold, italic, strikethrough, underline, superscript, subscript, inline monospace
    • Line formatting operations for monospaced blocks, quoting, headings and both numbered and bulleted lists
    • Insert picture from a dropdown chooser
    • Stamp snippet of pre-programmed text
    • Excise selected text into a new tiddler
    • Optional automatic resizing to fit content
  • Full keyboard shortcut editor in control panel. Shortcuts are also shown in the toolbar button tooltips

Improved Bitmap Editor

The bitmap editor has been enhanced with a toolbar supporting:

  • Painting with selectable colour, width and opacity
  • Clearing the image
  • Resizing the image
  • Keeping track of recently chosen colours

Improved Plugins

Several of the official plugins available in the plugin library have been updated for this release. Upgrading will automatically update any installed plugins.

  • The KaTeX plugin has been updated to version v0.60.0
  • The CodeMirror plugin has been updated to version 5.13.2, and integrated with the new editor toolbars. The default configuration has been updated to include syntax highlighting for HTML, JavaScript, CSS, XML, TiddlyWiki Classic and Markdown.
  • The Markdown plugin includes formatting toolbar buttons and a new "new markdown tiddler" button in the Tools tab of the sidebar.
  • The experimental Evernote plugin allows notes and images from .enex files to be imported into TiddlyWiki.
  • The new Internals plugin provides features to help understand the internal operation of TiddlyWiki, including new preview modes in the editor showing both the parse and widget trees of the current tiddler
  • Improved language translations:
    • Korean
    • Chinese (Simplified) and Chinese (Traditional)
    • German
    • French
    • Danish
    • Dutch

Text-Slicer Plugin Improvements

  • Added support for sticky notes within documents
  • Extended support for slicing documents to Node.js
  • Improved document metadata display
  • Added list-children filter operator
  • Fixed bugs

Other Improvements

Usability Improvements

  • Added a setting for disabling linking to missing tiddlers
  • Added a setting for forcing word wrapping in monospaced code blocks
  • Added a warning when creating or editing tiddler titles containing troublesome characters
  • Addition of “new image” button to the “Tools” tab of the sidebar
  • Introduction of new general purpose colour-picker Macro
  • Introduction of new general purpose image-picker Macro
  • Added a bulk delete button to advanced search "Filter" tab

Hackability Improvements

Bug Fixes

Node.js Improvements

Contributors

@Jermolene would like to thank the contributors to this release who have generously given their time to help improve TiddlyWiki:

TiddlyWiki Video Tutorials by Francis Meetze

26th September 2015 at 6:10pm

An extensive tutorial for getting started with TiddlyWiki. Recommended

https://www.youtube.com/playlist?list=PLzZCajspPU_UjFn0uy-J9URz0LP4zhxRK

This tutorial is aimed at giving you a basic foundation so that you can start using TiddlyWiki right away. Here we take a look at the technology behind Tiddlywiki, how to install it and create your first Tiddler.

TiddlyWiki.mp3

TiddlyWiki2ReadMe

Building TiddlyWikiClassic

TiddlyWiki5 can be used to build older 2.x.x versions of TiddlyWikiClassic from their constituent components. Doing so involves these features:

  • The tiddlywiki/classictools plugin, containing a deserializer module which allows tiddlers to be loaded from TiddlyWiki 2.x.x .recipe files
  • The stripcomments format for the ViewWidget, which strips single line JavaScript comments starting //#
  • The stripTitlePrefix='yes' attribute of the FieldsWidget, which removes prefixes wrapped in curly braces from the title attribute
    • For example, {tiddler}HelloThere would be transformed to HelloThere

Usage

TiddlyWikiClassic is built from the command line by running TiddlyWiki on Node.js. A typical usage would be:

node ../../tiddlywiki.js \
	--verbose \
	--load <path_to_recipe_file> \
	--rendertiddler $:/core/templates/tiddlywiki2.template.html <path_to_write_index_file> text/plain \
	|| exit 1

TiddlyWiki5

25th August 2013 at 10:36pm

TiddlyWiki5 is a reboot of TiddlyWiki for the next 25 years. It is a complete interactive wiki in JavaScript that can be run in the browser or on the server under Node.js.

TiddlyWiki5 Versioning

12th September 2014 at 3:26pm

Each release of TiddlyWiki5 is identified by a version number that complies with the Semantic Versioning 2.0.0 standard.

TiddlyWiki Core Version

According to the standard:

Given a version number MAJOR.MINOR.PATCH, increment the:

MAJOR version when you make incompatible API changes,
MINOR version when you add functionality in a backwards-compatible manner, and
PATCH version when you make backwards-compatible bug fixes.
Additional labels for pre-release and build metadata are available as extensions to the MAJOR.MINOR.PATCH format.

Alpha and Beta versions

While in alpha TiddlyWiki5 uses the pre-release label "alpha", for example:

5.0.1-alpha

Each new alpha or beta release will bump the PATCH version number. This breaks the strict semantics of versioning because PATCH increments are supposed to be reserved for compatible changes.

Note that prior to 5.0.1-alpha, TiddlyWiki5 used version numbers formatted as 5.0.0-alpha.19. The change was made to enable the upgrade mechanism to recognise plugin updates from the version information.

Interim versions

During development when a new release is being prepared, the pre-release label is set to prerelease.

Plugin Versions

Version numbers

TiddlyWiki5 uses the version information attached to plugins for determining which of two plugins is more recent during an upgrade or import. The pre-release label is ignored when performing these comparisons.

TiddlyWikiClassic

5th January 2014 at 4:32pm

"TiddlyWiki Classic" refers to versions prior to 5.0, when TiddlyWiki was completely rewritten from the ground up. TiddlyWiki Classic is still being maintained at:

http://classic.tiddlywiki.com/

MarioPietsch has started a site comparing the syntax and other changes between TiddlyWikiClassic and TiddlyWiki version 5:

http://compare-tw2-tw5.tiddlyspace.com

TiddlyWikiFolders

28th July 2015 at 11:44am

As well as traditional single file wikis, TiddlyWiki on Node.js supports wikis that are stored as a folder of individual tiddler files.

Wiki folder files and folders

Wiki folders can contain the following files and folders:

  • tiddlywiki.info - JSON file containing metadata for the wiki
  • \tiddlers - folder containing tiddler files comprising the wiki
  • \plugins - folder containing plugin folders to be included in the wiki

Only the tiddlywiki.info file is required, the tiddlers and plugins folders are optional. Any files and folders not listed above are ignored.

Content of tiddlywiki.info file

The tiddlywiki.info file in a wiki folder contains a JSON object comprising the following fields:

  • plugins - an array of plugin names to be included in the wiki
  • themes - an array of theme names to be included in the wiki
  • languages - an array of language names to be included in the wiki
  • includeWikis - an array of references to external wiki folders to be included in the wiki
  • build - a hashmap of named build targets, each defined by an array of command tokens (see BuildCommand)
  • config - an optional hashmap of configuration options (see below)

includeWikis

The entries in the includeWikis array can be either a string specifying the relative path to the wiki, or an object with the following fields:

  • path - relative path to wiki folder
  • read-only - set true to prevent the tiddlers in the included wiki from being modified. The modifications will be written to the directory specified in default-tiddler-location, described below

build

Note that the build targets of included wikis are merged if a target of that name isn't defined in the current tiddlywiki.info file.

config

Configuration options include:

  • default-tiddler-location - a string path to the default location for the filesystem adaptor to save new tiddlers (resolved relative to the wiki folder)
  • retain-original-tiddler-path - If true, the server will generate a tiddler $:/config/OriginalTiddlerPaths containing the original file paths of each tiddler in the wiki

Example

For example:

{
	"plugins": [
		"tiddlywiki/tiddlyweb",
		"tiddlywiki/filesystem"
	],
	"includeWikis": [
		"../tw5.com"
	],
	"build": {
		"index": [
			"--rendertiddler","$:/core/save/all","index.html","text/plain"],
		"favicon": [
			"--savetiddler","$:/favicon.ico","favicon.ico",
			"--savetiddler","$:/green_favicon.ico","static/favicon.ico"]
	},
	"config": {
		"retain-original-tiddler-path": true	
	}
}

Content of tiddlers folder

All the TiddlerFiles in the tiddlers folder are read into the wiki at startup. Sub-folders are scanned recursively for TiddlerFiles. Newly created tiddlers are stored in TiddlerFiles directly beneath the tiddlers folder, unless configured otherwise.

Sub-folders within the tiddlers folder can also be given a tiddlywiki.files JSON file that overrides the default processing for that folder. The file format is illustrated with this example:

{
	"tiddlers": [
		{
			"file": "d3.min.js",
			"fields": {
				"type": "application/javascript",
				"title": "$:/plugins/tiddlywiki/d3/d3.js",
				"module-type": "library"
			},
			"prefix": "var d3;if($tw.browser){\n",
			"suffix": "}\nexports.d3 = d3;\n"
		},
		{
			"file": "cloud/d3.layout.cloud.js",
			"fields": {
				"type": "application/javascript",
				"title": "$:/plugins/tiddlywiki/d3/d3.layout.cloud.js",
				"module-type": "library"
			}
		},
		{
			"file": "local/mytiddler.tid",
			"isTiddlerFile": true,
			"fields": {
				"title": "A different title"
			}
		}
	],
	"directories": [
		"../../mytiddlers/store"
	]
}

The JSON data consists of an object with a tiddlers property that contains an array of information about each tiddler to be loaded into the wiki. That information consists of:

  • The relative or absolute path to the file to include as either:
    • file: the file containing the tiddler
    • isTiddlerFile: if true, the file will be deserialised to extract the tiddlers. Otherwise, the raw content of the file is assigned to the text field without any parsing
  • fields: an object containing fields that override any provided in the tiddler file
  • prefix & suffix: (optional) specify strings to be prefixed and suffixed to the tiddler file text content

The directories property allows a list of directories to be specified. All tiddlers will be recursively loaded from each directory listed.

timeline Macro

21st February 2015 at 10:44pm

The timeline macro returns a list of tiddlers in reverse chronological order of modification (or some other date field), grouped by day.

Parameters

limit
The maximum number of tiddlers to include, defaulting to 100. But if any tiddlers are included for a particular day, all of the other tiddlers for that day will also be included – even if this exceeds the limit
format
A string specifying the desired format, defaulting to DDth MMM YYYY
subfilter
An optional extra filter step, e.g. tag[MyTag]
dateField
The name of the date field to use, defaulting to modified

The tiddlers are selected by means of a filter expression, into which the subfilter and limit parameters are spliced as follows:

[!is[system]$subfilter$has[modified]!sort[modified]limit[$limit$]eachday[modified]]

Examples

timeline Macro (Examples)

21st February 2015 at 10:46pm

<<timeline format:"DD/MM/YYYY">>
<<timeline limit:30 subfilter:"tag[Definitions]" format:"DD/MM/YYYY">>

Title List

24th January 2015 at 8:56pm

A title list is a line of text that presents one or more tiddler titles, strung together with a space between each one and the next.

If a title contains a space, it needs double square brackets around it:

GettingStarted [[Discover TiddlyWiki]] Upgrading

Title lists are used in various places, including PermaLinks and the ListField.

They are in fact the simplest case of a filter, and are thus a way of expressing a selection of titles.

title Operator

3rd February 2015 at 7:17pm
purposeselect a single title
inputignored
! inputa selection of titles
parameterT = a tiddler title
outputa selection containing only T
! outputthe input, but with tiddler T filtered out if it exists in the wiki

[title[An Example]] can be shortened to [[An Example]], because title is the default filter operator.

title is a constructor (except in the form !title), but field:title is a modifier.

Examples

title Operator (Examples)

24th January 2015 at 2:03pm

[title[HelloThere]]

[[HelloThere]]

HelloThere

[title[HelloThere]] [title[Filter Operators]]

[[HelloThere]] [[Filter Operators]]

HelloThere [[Filter Operators]]

[tag[Filters]] +[!title[Filter Operators]]

[tag[Filters]] +[![Filter Operators]]

[tag[Filters]] -[[Filter Operators]]

Title Selection

24th January 2015 at 8:29pm

A title selection is an ordered set of tiddler titles (or similar strings), in which no title appears more than once.

Title selections are important in filter processing.

The simplest way to write one down is as a title list.

TranscludeWidget

17th July 2014 at 6:59pm

Introduction

The TranscludeWidget dynamically imports content from another tiddler.

Attributes

AttributeDescription
tiddlerThe title of the tiddler to transclude (defaults to the current tiddler)
fieldThe field name of the current tiddler (defaults to "text"; if present takes precedence over the index attribute)
indexThe index of a property in a DataTiddler
subtiddlerOptional SubTiddler title when the target tiddler is a plugin (see below)
modeOverride the default parsing mode for the transcluded text to "block" or "inline"

The TranscludeWidget treats any contained content as a fallback if the target of the transclusion is not defined (ie a missing tiddler or a missing field).

Parsing modes

TiddlyWiki parses text in two modes:

  • inline mode recognises character formatting such as emphasis, links
  • block mode recognises all the inline formatting, and adds block formatting such as tables, headings and lists

Usually, the mode is determined by whether the transclude widget itself has been parsed in block or inline mode. This can be overridden with the mode attribute.

For example, consider tiddler "A" with this content:

# Item one
#<$transclude tiddler="B"/>
# Item two

And a tiddler "B" with this content:

# Item one - a
# Item one - b

The result will be something like this:

  1. Item one
  2. # Item one - a # Item one - b
  3. Item two

This can be fixed by amending tiddler "A":

# Item one
#<$transclude tiddler="B" mode="block"/>
# Item two

SubTiddler Access

The transclude widget allows access to the individual tiddlers stored within a plugin.

The following example will transclude the core version of the tiddler $:/DefaultTiddlers even if it has been overridden:


<$transclude tiddler="$:/core" subtiddler="$:/DefaultTiddlers"/>

That renders as:

GettingStarted

Transclusion

30th November 2014 at 7:54pm

Transclusion is the process of referencing one tiddler "A" from another tiddler "B" such that the content of "A" appears to be a part of "B".

Copying and pasting content creates multiple copies of the same content in several different places. With transclusion, there can be a single copy and a special instruction in "B" which indicates the point at which content should be inserted from tiddler "A".

Note that if the content of "A" is modified then the modification automatically appears in "B". This makes it easier to maintain repetitive content, by allowing every piece to be written in a single place, but viewed from many.

The concept of transclusion plays an important role in the Philosophy of Tiddlers because it is the primary way in which small items of content are combined.

To learn more:

Transclusion and Substitution

20th February 2015 at 7:03pm

The power of WikiText comes from the ability to use the content of one tiddler inside another one. This ability takes several different forms that can easily be confused.

The main distinction is between a transclusion and a textual substitution:

  • A transclusion is replaced dynamically with the value of either:
    • a tiddler field
    • a variable
  • Textual substitutions are performed on the text of macro definitions before they are used

Tiddler Field Transclusion

Transclusion in WikiText describes the basics of transclusion. For example:

{{MyTiddler}}

As described in HTML in WikiText, you can also transclude tiddler field values as attributes of HTML elements and widgets. For example:

<$text text={{MyTiddler}}/>

As described in Introduction to Filters, you can also transclude tiddler field values as filter operands. For example:

{{{ [tag{TiddlerContainingMyTag}] }}}

Variable/Macro Transclusion

Variables that were defined with parameter or variable substitution are referred to as "macros". The value of a variable/macro can be transcluded with the syntax:

<<myMacro param:"Value of parameter">>

As described in HTML in WikiText, you can also transclude a variable as the value of an attribute of HTML elements and widgets. For example:

<$text text=<<myMacro>>/>

As described in Introduction to Filters, you can also transclude a variable as the value of a filter operand. For example:

{{{ [tag<myMacro>] }}}

Textual Substitution

Textual substitution occurs when the value of a macro/variable is used. It is described in Macros in WikiText.

The key difference between substitution and transclusion is that substitution occurs before WikiText parsing. This means that you can use substitution to build WikiText constructions. Transclusions are processed independently, and cannot be combined with adjacent text to define WikiText constructions.

Transclusion Basic Usage

30th November 2014 at 7:48pm

Simple Transclusion

To include some content from TiddlerA into TiddlerB, edit the latter to include the following text:

This is the content of TiddlerA: {{TiddlerA}}

The result is that the content of the text field (i.e. the main content) of TiddlerA is rendered within TiddlerB.

Usage

The notation {{TiddlerA}} is a shortcut for {{TiddlerA!!text}}. This is because the default field for transclusion is text, but any other field can be used explicitly. For example, you can print the last time TiddlerA was modified using:

TiddlerA was modified on {{TiddlerA!!modified}}

By omitting the tiddler title, the transclusion notation can also be used to display the content of a field from the current tiddler, for example:

The current tiddler was modified on {{!!modified}}

Recursion Errors

Notice that using {{!!text}} or {{}} causes an error (Recursive transclusion error in transclude widget), because it does not make sense to include the content of the current tiddler into the content of the current tiddler (that is, into itself). Whenever you encouter this error message, it means that you are trying to include something into itself, directly or indirectly (for example if tiddler A transcludes tiddler B which transcludes tiddler C which, in turn, transcludes tiddler A).

Learning More

In TiddlyWiki, transclusions are not limited to including raw content like the above. To learn about more advanced uses of transclusion, see Transclusion with Templates.

See also:

Transclusion in WikiText

20th February 2015 at 4:13pm

Introduction

You can incorporate the content of one tiddler within another using the Transclusion notation:

  • {{MyTiddler}} transcludes a single tiddler
  • {{MyTiddler||TemplateTitle}} displays the tiddler through a specified TemplateTiddler
  • {{||TemplateTitle}} displays the specified template tiddler without altering the current tiddler

Transcluding Text References

You can also use a TextReference instead of a tiddler title:

  • {{MyTiddler!!field}} transcludes a specified field of a tiddler
  • {{!!field}} transcludes a specified field of the current tiddler
  • {{MyTiddler##index}} transcludes a specified indexed property of a DataTiddler
  • {{##index}} transcludes a specified indexed property of the current DataTiddler

Filtered Transclusion

A similar syntax can be used to transclude a list of tiddlers matching a specified filter:

{{{ [tag[mechanism]] }}}
{{{ [tag[mechanism]] ||TemplateTitle}}}

Generated Widgets

The WikiText transclusion syntax generates a TiddlerWidget wrapped around a TranscludeWidget. For example, {{MyTiddler||MyTemplate!!myField}} generates the following pair of widgets:

<$tiddler tiddler="MyTiddler">
<$transclude tiddler="MyTemplate" field="myField"/>
</$tiddler>

See also:

transclusion Variable

21st February 2015 at 10:56pm

The transclusion variable is set by the $transclude widget to a string that identifies the position of that widget within the widget tree.

TiddlyWiki's core uses it to detect recursive transclusion. It is also used to implement the qualify macro.

The string has the following syntax:

{a|b|c|d|e|}

  1. the title of the current tiddler
  2. the title of the tiddler being transcluded
  3. the name of the field being transcluded
  4. the name of the property name or index being transcluded
  5. the name of the subtiddler being transcluded from a plugin

Many of the five items are often blank.

In the sidebar, the value of transclusion is:

{|$:/core/ui/PageTemplate/sidebar|||}

When the tiddler HelloThere is displayed in the story river, transclusion is set to:

{HelloThere|HelloThere|||}

Examples

transclusion Variable (Examples)

28th February 2015 at 10:34am

This example shows how to distinguish between the sidebar and other environments:

We are
<$list
filter="[<transclusion>prefix[{|$:/core/ui/PageTemplate/sidebar|||}]]"
emptyMessage="in the story river.">
in the sidebar.
</$list>

In the sidebar, this would show We are in the sidebar instead.

Transclusion with Templates

20th February 2015 at 4:14pm

Introduction

In Transclusion Basic Usage we have seen how to include the content of a tiddler A into a tiddler B. Now suppose that tiddler A contains:

@@background-color:yellow;
Hello, my title is {{!!title}}
@@

This makes tiddler A display its title with a yellow background (see Styles and Classes in WikiText to learn about CSS style). Imagine that you want to display the title in the same way in tiddler B. But you don't want to copy/paste the style instructions, because you might want to change the background colour later and you want to keep it consistent among tiddlers. This looks like a typical case of transclusion, so let's try to transclude tiddler A in tiddler B the usual way with {{A}}. You should see the following content in tiddler B:

Hello, my title is A

The style is applied as expected, but the title is wrong: we want {{!!title}} to refer to the target tiddler B, and not the source tiddler A.

The solution is to use a template. In this case, the source tiddler A is called the TemplateTiddler, and it is applied to tiddler B using the notation {{||A}}. The difference is that any TextReference which does not refer explicitly to a specific tiddler is applied to the current tiddler, that is, the target tiddler. As a result, tiddler B now looks as expected:

Hello, my title is B

Usage

Transcluding via a template is like applying a mask: assuming that the source tiddler contains generic references (like eye holes in a mask), these will be replaced with the target tiddlers values (like the eyes of the person who wears the mask).

A template can be applied to any tiddler, not necessarily the current one. This is achieved using the full notation {{<target>||<template>}}. The default <target> is the current tiddler (this is what we used in the above example).

Examples

A predefined template to render tags nicely

You can apply the system template $:/core/ui/TagTemplate to a tag in order to see it as a tag pill with a drop-down menu:

{{Transclusion||$:/core/ui/TagTemplate}}

is rendered as

See also:

Translate TiddlyWiki into your language

22nd June 2016 at 3:14pm

There is a special edition of TiddlyWiki that simplifies creating and maintaining translations:

Note that no knowledge of Node.js or GitHub is required.

You can translate TiddlyWiki on Node.js, type tiddlywiki editions/translators --server and visit http://127.0.0.1:8080/ in your browser.

See http://tiddlywiki.com/dev for technical details of creating and maintaining translations.

TranslationMechanism

11th September 2014 at 7:38pm

The translation mechanism of TiddlyWiki manages and switches between language plugins that provide translations of the TiddlyWiki user interface. The developer site at http://tiddlywiki.com/dev/ explains how translators can create and submit translations for TiddlyWiki.

The title of the current language plugin is read from the tiddler $:/language. If the selected plugin changes then any displayed translateable text automatically changes.

Translation plugins are bundles of tiddlers that each contain an indepedent translatable string. The strings are transcluded as needed.

Translatable strings are generally in the namespace $:/language/, for example:

TriTarget.org by Devin Weaver

24th April 2016 at 12:21pm

A personal website built with TiddlyWiki.

https://tritarget.org

TriTarget.org is a name I came up with in high school. I was big into computer programming and wanted a company name that was kinda catchy. When I made a few programs in BASIC I would brand them with TriTarget as a way to show off my company (Even though I didn't have one).

Tuesday

18th January 2015 at 1:15pm

This example tiddler is used to illustrate some of the Filter Operators.

Tutorials

2nd June 2016 at 6:27pm

Here are some webpages with tips and tutorials related to TiddlyWiki.

tv-auto-open-on-import Variable

28th February 2015 at 1:04pm

The tv-auto-open-on-import variable controls whether the tm-import-tiddlers message causes the tiddler $:/Import (which lists the pending imports) to open in the story river.

By default, the tiddler is opened. But if this variable has the value no, it isn't.

An example of setting this variable to no can be found in the upgrade plugin within the TiddlyWiki Upgrade Wizard. People can drag their wiki files onto the wizard without triggering the normal import display.

tv-config-toolbar-class Variable

28th February 2015 at 1:58pm

The tv-config-toolbar-class variable controls the value of the CSS class attribute on the HTML element for a toolbar button.

It can be set prior to transcluding such a button.

In most environments, it defaults to tc-btn-invisible, which removes the button's background colour and border.

Examples

tv-config-toolbar-class Variable (Examples)

28th February 2015 at 1:57pm

<$set name="tv-config-toolbar-class" value="tc-btn-invisible">
{{$:/core/ui/Buttons/new-tiddler}}
</$set>

<$set name="tv-config-toolbar-class" value="green-background">
{{$:/core/ui/Buttons/new-tiddler}}
</$set>

The green-background CSS class is declared in a stylesheet within this tiddler.

tv-config-toolbar-icons Variable

28th February 2015 at 2:13pm

The tv-config-toolbar-icons variable controls whether toolbar buttons display icons.

It can be set to yes or no prior to transcluding such a button.

The standard page template sets it to the value found in $:/config/Toolbar/Icons, with the result that this becomes the default for the whole page. The user can adjust this default by using a tickbox on the Settings tab of the Control Panel.

Examples

See also tv-config-toolbar-text.

tv-config-toolbar-icons Variable (Examples)

28th February 2015 at 2:14pm

<$set name="tv-config-toolbar-icons" value="no">
<$set name="tv-config-toolbar-text" value="yes">
{{$:/core/ui/Buttons/new-tiddler}}
</$set>
</$set>

<$set name="tv-config-toolbar-icons" value="yes">
{{$:/core/ui/Buttons/new-tiddler}}
</$set>

tv-config-toolbar-text Variable

28th February 2015 at 2:14pm

The tv-config-toolbar-text variable controls whether toolbar buttons display text.

It can be set to yes or no prior to transcluding such a button.

The standard page template sets it to the value found in $:/config/Toolbar/Text, with the result that this becomes the default for the whole page. The user can adjust this default by using a tickbox on the Settings tab of the Control Panel.

Examples

See also tv-config-toolbar-icons.

tv-config-toolbar-text Variable (Examples)

28th February 2015 at 2:05pm

<$set name="tv-config-toolbar-text" value="no">
{{$:/core/ui/Buttons/new-tiddler}}
</$set>

<$set name="tv-config-toolbar-text" value="yes">
{{$:/core/ui/Buttons/new-tiddler}}
</$set>

tv-get-export-image-link Variable

28th February 2015 at 1:09pm

The tv-get-export-image-link variable controls the value of the src attribute on the HTML img element generated by the $image widget when the value of its source attribute is not the title of a tiddler.

The variable should be a macro with the following parameter:

src
The value of the source attribute – equivalent to the image name specified in the shorthand syntax [img[source]]

The ability to override image URIs in this way can be useful when one is using the Node.js configuration to export a static version of a wiki.

Examples

tv-get-export-image-link Variable (Examples)

This example fetches the TiddlyWiki icon:

\define tv-get-export-image-link(src) http://www.tiddlywiki.com/$src$
[img[favicon.ico]]

tv-get-export-link Variable

28th February 2015 at 1:09pm

The tv-get-export-link variable controls the value of the href attribute on the HTML a element generated by the $link widget.

This variable has no useful effect when TiddlyWiki is running in a browser, as the href attribute is ignored there – links between tiddlers are performed by JavaScript instead. The variable comes into play when one is using the Node.js configuration to generate a static version of a wiki.

The variable should be a macro with the following parameter:

to
The title of the target tiddler of the link, with no escaping

See also tv-wikilink-template. If both that variable and this one exist, this one dominates.

tv-get-export-path Variable

28th February 2015 at 1:17pm

The tv-get-export-path variable specifies the full pathname to which the rendertiddlers Node.js command writes each tiddler.

The variable should be implemented as a JavaScript macro with the following parameter:

title
The title of the tiddler

If no such macro exists, the tiddlers are written to files whose names are percent-encoded, in the command's output folder.

tv-tiddler-preview Variable

20th June 2015 at 9:27am

The tv-tiddler-preview variable indicates whether content is being rendered in a tiddler preview panel.

The value is yes within the preview panel, and undefined elsewhere.

tv-wikilink-template Variable

28th February 2015 at 1:13pm

The tv-wikilink-template variable controls the value of the href attribute on the HTML a element generated by the $link widget.

This variable has no useful effect when TiddlyWiki is running in a browser, as the href attribute is ignored there – links between tiddlers are performed by JavaScript instead. The variable comes into play when one is using the Node.js configuration to generate a static version of a wiki.

The variable is treated as if it was a macro with the following parameters:

uri_encoded
The title of the target tiddler of the link, but percent-encoded
uri_doubleencoded
The value of the uri_encoded parameter but percent-encoded again, i.e. with its % characters further converted to %25

\define tv-wikilink-template() ../tiddlers/$uri_encoded$.html

The variable defaults to #$uri_encoded$.

See also the tv-get-export-link variable, which dominates over this one.

tv-wikilink-tooltip Variable

28th February 2015 at 1:04pm

The tv-wikilink-tooltip variable specifies the default value for the tooltip attribute of the $link widget.

It is often defined as a macro, and its value parsed as inline WikiText.

Examples

tv-wikilinks Variable

28th February 2015 at 1:04pm

The tv-wikilinks variable controls the behaviour of the $link widget.

The widget normally produces a link to a tiddler. But if this variable has the value no, the widget suppresses the link and simply displays the text that would otherwise have served as the link.

You can suppress links for a whole tiddler by placing the following line at the start of the tiddler's text:

\define tv-wikilinks() no

This variable has no effect on external links, as those do not involve the $link widget.

Examples

tv-wikilinks Variable (Examples)

28th February 2015 at 10:44am

HelloThere,
[[HelloThere]],
<$link to="HelloThere">is //this// a link?</$link>

<$set name="tv-wikilinks" value="no">
HelloThere,
[[HelloThere]],
<$link to="HelloThere">is //this// a link?</$link>
</$set>

TW2Parser Plugin

7th January 2016 at 10:37pm

This experimental plugin adds the ability to display WikiText written for the original Classic version of TiddlyWiki.

See http://tiddlywiki.com/plugins/tiddlywiki/tw2parser/

TWaddle by Matias Goldman

29th May 2015 at 9:43am

A collection of hints and tips, musings and proposals from long-time TiddlyWiki contributor Mat Goldman.

http://twaddle.tiddlyspot.com/

This is Mat's, a.k.a <:-) little man-cave in the TiddlyVerse.

Most TW development is, understandably, based on the premise that "Improve code ➔ Better TW". TWaddle is also about developing TW but from the perspective that Bigger community ⇄ Better TW. Thus, TWaddle looks more to people issues - how to attract them, how to make them stick with TW etc.

I'm not a programmer but I am a TW enthusiast so I tiddlefiddle enough to make the occasional discovery of something cool. Given the amount of words I utter, it is also a mere numbers game before I say something that makes sense. TWaddle is intended to capture these eventualities.

TWCommunitySearch

13th September 2015 at 7:42pm

The CommunitySearch wiki aggregates many public wikis from the community. It is updated automatically every day. At the time of writing, more than 5000 tiddlers are indexed, thus giving access to the largest known collection of TW content.

It lets you search for some specific content among a preselected list of wikis. The indexed content is mostly focused on TW usage, so you would typically use this search system to find information about a particular aspect of TiddlyWiki. Say for example that you want to learn how to make a table of content, type "table of content" in the CommunitySearch box (also accessible in the default tiddler GettingStarted). The search results are links to various wikis, and point directly to the specific tiddlers containing your request.

The CommunitySearch wiki also lets you:

TWEUM2016 Thumbnail.jpg

TWGuides by Andreas Hahn

30th April 2015 at 4:42pm

A collection of community tips and tutorials curated by Andreas Hahn, including a handy "customiser" that simplifies creating an empty TiddlyWiki with selected plugins and enhancements.

Updated to include Tinka, a plugin that "provides a GUI to create and modify plugins more easily, therefore saving time on the packaging process".

http://twguides.org/

The intent of the project is to encourage people to use and actively tweak TiddlyWiki according to their needs. Similar to the old version, I also want to encourage people to share their knowledge and help other people get the most out of this wonderful piece of wiki software.

twproxy by Steve Gattuso

24th April 2016 at 4:02pm

An authentication proxy for your TiddlyWiki.

https://github.com/stevenleeg/twproxy

One of my favorite aspects of TiddlyWiki has been that it's web-based, making it possible for me to access my wiki from everywhere (especially my phone). That being said, I'm a bit paranoid, so I was left a bit unsatisfied with the tiddlywiki server's HTTP basic auth for protecting my wiki. ~23 commits later, I've created something called twproxy that I'd like to share with you all today, as I'm hoping somebody other than myself will find it useful.

Essentially it is a simple proxy that puts your wiki behind a username, password, and optional 2-factor auth prompt. This gives you added security in addition to the ability to remember your credentials past one browsing session (I was getting sick and tired of typing my username/password in over and over using basic auth).

Typed Blocks in WikiText

20th January 2014 at 5:14pm

WikiText can include blocks of text that are rendered with an explicit ContentType like this:

$$$image/svg+xml
<svg xmlns="http://www.w3.org/2000/svg" width="150" height="100">
  <circle cx="100" cy="50" r="40" stroke="black" stroke-width="2" fill="green" />
</svg>
$$$

This renders as:

It is also possible to abbreviate the ContentType to a file extension. For example:

$$$.svg
<svg xmlns="http://www.w3.org/2000/svg" width="150" height="100">
  <circle cx="100" cy="50" r="40" stroke="black" stroke-width="2" fill="red" />
</svg>
$$$

This renders as:

Unknown types render as plain text:

$$$text/unknown
Some plain text, which will not be //formatted//.
$$$

Which renders as:

Some plain text, which will not be //formatted//.

A render type can also be specified, causing a particular text rendering to be displayed. For example:

$$$text/vnd.tiddlywiki>text/html
This is ''some'' wikitext
$$$

$$$text/vnd.tiddlywiki>text/plain
This is ''some'' wikitext
$$$

Renders as:

<p>This is <strong>some</strong> wikitext</p>
This is some wikitext

Typography

17th January 2015 at 3:25pm

Use the documentation macros to keep the text maintainable in the face of change.

Be wary of arbitrarily applying raw bold or italic markup in a sentence. If there's a suitable macro, use that instead. If there isn't a suitable macro, write one or request one.

Use simple backticks (`...`) for fragments of WikiText, but not for the names of things like fields and widgets. These have their own macros.

To keep things clean and simple, quotation marks and apostrophes should be straight ', not curly , and the ellipsis should be three separate dots ... rather than .

Use " as the primary quotation mark, reserving ' for the rare case of a nested quotation.

Avoid using a single hyphen - as sentence punctuation. Instead, use a double hyphen – which TiddlyWiki renders as an en-dash – with a space on either side.

Items in lists and tables should only end with a full stop (period in US English) if they are complete sentences. They should have no trailing punctuation otherwise.

It is very rarely necessary to use an exclamation mark in professional documentation.

Uninstalling a plugin

20th July 2016 at 3:58pm

Standalone Configuration

Follow these instructions when using TiddlyWiki as a standalone HTML file:

  1. Create a backup of your current TiddlyWiki HTML file (just in case)
  2. Open the control panel and go to the Plugins tab
  3. Click on the plugin you want to delete to open its tiddler
  4. Click the more button and delete the tiddler
  5. Save your TiddlyWiki
  6. Refresh the window so that TiddlyWiki completely removes the plugin
  7. The plugin should now be deleted

Client-Server Configuration

Follow these instructions when using TiddlyWiki under Node.js:

  1. Quit the server if it is running
  2. Edit the tiddlywiki.info file (it is in JSON format) and locate the plugins and themes section (see below)
  3. Remove the entries corresponding to the plugins you wish to remove. Take care to retain commas to separate items, but do not terminate the last item in a list with a comma
  4. Restart the server
{
	"plugins": [
		"tiddlywiki/codemirror"
	],
	"themes": [
		"tiddlywiki/vanilla",
		"tiddlywiki/snowwhite"
	]
}

UnpackPluginCommand

29th October 2014 at 11:43am

Extract the payload tiddlers from a plugin, creating them as ordinary tiddlers:

--unpackplugin <title>

untagged Operator

3rd February 2015 at 7:18pm
purposediscard any input titles that have tags
inputa selection of titles
parameternone
outputthose input tiddlers that have no tags
! outputthose input tiddlers that have at least one tag

A tiddler is deemed to have no tags if it:

  • doesn't exist
  • doesn't have a tags field
  • has an empty tags field

Examples

untagged Operator (Examples)

24th January 2015 at 2:27pm

[untagged[]]

[all[shadows]untagged[]]

[list[HelloThere]!untagged[]]

UpgradeMechanism

6th June 2016 at 1:28pm
  1. Open upgrade.html
  2. Includes a data tiddler called $:/UpgradeLibrary that contains the latest compatible versions of all plugins in the library
  3. Drag in old wiki file
  4. Place tiddlers into a data tiddler $:/Import that is typed as a "pending import"
  5. Kick off import processing for each tiddler
    1. Give each "upgrader" module a chance to inspect the incoming tiddlers
    2. Upgrader modules can trigger actions for each tiddler:
      • Display a warning message
      • Don't import
      • Replace with another tiddler from the upgrade library
      • Disable incompatible plugins
  6. Display the newly created pending import tiddler through a new view template segment
    1. Displays the payload tiddlers as a list of titles and checkboxes, with a dropdown showing the full details of the tiddler
    2. Perhaps we also suppress the usual JSON display for data tiddlers behind a reveal widget
  7. The user can adjust the selection checkboxes
  8. Clicking "Upgrade" unpacks the selected tiddlers from the pending import tiddler
  9. The pending import tiddler and the upgrade library tiddler are excluded from the subsequent save operation

Upgrading

17th June 2016 at 11:51am

There are regular releases of TiddlyWiki with bug fixes and improvements. It's a good idea to keep up to date by regularly upgrading to the latest version.

Introduction

The process described here is for upgrading standalone TiddlyWiki files. There is a different procedure for upgrading TiddlyWiki on Node.js.

When upgrading, please remember the The First Rule of Using TiddlyWiki:

You are responsible for looking after your own data; take care to make backups, especially when upgrading the TiddlyWiki core

Online upgrading

This process will work on most desktop browsers. Note that none of your personal data leaves your browser with this process.

  1. Locate your TiddlyWiki file in the file system (i.e. using Windows Explorer, the Finder on Mac OS X, or your file manager on Linux)
  2. Visit http://tiddlywiki.com/upgrade.html in your browser
  3. Drag your old TiddlyWiki HTML file into the browser window
    • If the file is encrypted you will be prompted for the password
  4. Review the list of tiddlers that will be upgraded
  5. Click Upgrade
  6. Save changes to save the new version ( )

This will download a file called upgrade.html to your computer. This file is the upgrade of your old file. You may need to open the location where upgrade.html was downloaded, rename upgrade.html with the name of the old file you are upgrading, and replace the old file by moving the new file in its place.

Offline upgrading

You can also download http://tiddlywiki.com/upgrade.html locally and perform the same drag-and-drop procedure to upgrade your files.

Problems with Upgrades

Firefox Security Restrictions

The following error occurs when trying to perform the online upgrade procedure using Firefox:

Error while saving:

Error:NS_ERROR_DOM_BAD_URI: Access to restricted URI denied

The upgrade operation falls foul of a security restriction in Firefox. Until this can be resolved, we suggest either using the offline upgrader, or using Chrome to perform the upgrade:

  1. Use Chrome to open http://tiddlywiki.com/upgrade.html, then drag the TiddlyWiki HTML file to be upgraded into the upgrader window, as described above in Online upgrading
  2. After you've saved your upgraded file, you should be able to open it in Firefox and save using TiddlyFox again

Incompatible Customisations

It is possible for a customisation applied in a previous version to break when upgraded to the latest version. There are two techniques you can use to help track down issues:

  • Try repeating the upgrade having selectively unchecked any tiddlers that may be applying customisations to TiddlyWiki
  • Use SafeMode to disable all customisations of shadow tiddlers

You can see which shadow tiddlers have been overridden in the Filter tab of advanced search. Select "Overridden shadow tiddlers" from the dropdown.

Upgrading TiddlyWiki on Node.js

12th September 2014 at 3:18pm

If you've installed TiddlyWiki on Node.js on the usual way, when a new version is released you can upgrade it with this command:

npm update -g tiddlywiki

On Mac or Linux you'll need to add sudo like this:

sudo npm update -g tiddlywiki

URI

28th February 2015 at 11:36am

A URI (also often known as a URL) is a string of characters used to specify the location of a resource such as a web page.

Using a custom path prefix with the client-server edition

12th September 2014 at 3:16pm

By default, when running TiddlyWiki on Node.js, the server exposes the wiki at the URI formed from the protocol, host and port - for example, http://127.0.0.1:8080/.

There are two steps to running the wiki at a custom path like http://127.0.0.1:8080/path/to/my/wiki/:

  1. Configure the server by passing /path/to/my/wiki as the pathprefix argument of the ServerCommand
  2. Configure the client by creating a tiddler called $:/config/tiddlyweb/host that contains $protocol$//$host$/path/to/my/wiki/

Using ES2016 for Writing Plugins

5th March 2016 at 10:29pm

With the advent of ES2015 (also known as ES6) and the availability of Babel.js plugin developers can leverage ES2015 when writing TiddlyWiki plugins. Understanding the nuances between TiddlyWiki's module sandbox and how Babel compiles it's output ready for a module system like CommonJS/AMD.

Please understand how the PluginMechanism works since this is all about writing a plugin using Babel to compile the output that will be included in the final TiddlyWiki (for example TiddlyWiki on Node.js).

Installing and Configuring Babel

You can install Babel using

$ npm install --global babel-cli babel-presets-es2015

If your developing the plugin for inclusion to the npm registry (or for convenience) you can avoid the global install and save it to the local package.json file with

$ npm install --save-dev babel-cli babel-presets-es2015

Inside your plugin project edit the file .babelrc and enter the following:

{
  "presets": [
    "es2015"
  ]
}

I found it easier to manage my plugins as if they were npm modules complete with a package.json that compiles the output via npm run build. See npm-scripts documentation for details.

Compiling the Output

Pick a folder to store the ES2015 JavaScript and a folder to output the TiddlyWiki ready JavaScript. In this example I will use src and lib respectively. With Babel installed and working I can compile all the JavaScript in the src folder to the lib folder by running this command:

$ babel src -d lib

Babel will not copy over non-JavaScript files. It is up to the developer to include all the supporting files themselves. Babel only converts the JavaScript files (ending in .js) from the src folder to the lib folder.

Imports and Exports

In a plugin written pre-ES2015 one would require a module through TiddlyWiki like so:

var Widget = require('$:/core/modules/widgets/widget.js').widget;

But in ES2015 the following would look like:

import { widget as Widget } from '$:/core/modules/widgets/widget.js';

Conveniently when Babel compiles this it will essentially output the same JavaScript as the first pre-ES2016 code.

Also, in ES2016 you are required to declare your imports at the beginning and can not dynamically require things. This means you can not have an import statement in an if block or in a function. If that functionality is desired then you will have to go back to using the require() statement directly. But conciser that by doing so that you may be missing an oppertunity to make your code cleaner and better.

Exporting is the same thing. Instead of assigning to a property of the exports variable you use the export keyword:

export { MyWidget as mywidget };

It is illegal JavaScript to export with a name that is not an identifier even though it is ok to use a non-identifier (string) as a property key. What this means is if you want a widget to have a dash in it then you have to revert to using the exports['my-widget'] = MyWidget; syntax.

It is important to understand that in ES2016 the default export is not supported in TiddlyWiki. This is mostly because the core code expects specific properties to be attached to the exports variable. Bable's export conversion plays well with this except with the default export.

Classes

In the example of a widget ES2016 plays well with class inheritance. To contrast the typical Widget definition would look something like this:

function MyWidget() {
  Widget.call(this);
}
MyWidget.prototype = new Widget();
MyWidget.prototype.render = function(parent, nextSibling) {…};
// And so on…

With classes this ceremony can be tightened up:

class MyWidget extends Widget {
  render(parent, nextSibling) {…}
  // And so on…
}

With classes one could eliminate much of the Widget.execute() cruft using getters. I found this to be more readable then the typical mass assignment to this. It gave me the added benefit of allowing calculations in properties that normally would have conflated the execute() method. For example developing a compound property like so:

class NameWidget extends Widget {
  get title() { return this.getAttribute('title'); }
  get firstName() { return this.getAttribute('first'); }
  get lastName() { return this.getAttribute('last'); }
  get fullName() { return `${this.title}. ${this.firstName} ${this.lastName}`; }
}

Non Class Modules

For non class modules you can use the export keyword. Here is a simple Startup Module:

export function startup() {
  // Do stuff here
}

Or in the case of a Macro:

export const name = 'my-macro';
export const params = {};
export function run() {…}

Polyfills

ES2015 comes with some features that are part of the JavaScript core objects. These are not supported by all browsers. To use these features in most browsers you will need a polyfill. Babel has a polyfill package that you can include. See Adding Babel Polyfill to TiddlyWiki for how to accomplish this.

Example

Here is an example ES2015 plugin/widget that will show the time and update it:


/*\
title: $:/plugins/sukima/clock-widget.js
type: application/javascript
module-type: widget

A updating time stamp

\*/
import { widget as Widget } from '$:/core/modules/widgets/widget.js';

class ClockWidget extends Widget {
  constructor(parseTreeNode, options) {
    super(parseTreeNode, options);
    this.logger = new $tw.utils.Logger('clock-widget');
  }

  render(parent, nextSibling) {
    if (!$tw.browser) { return; }
    this.logger.log('Rendering clock DOM nodes');
    this.computeAttributes()
    this.parentDomNode = parent;
    this.domNode = $tw.utils.domMaker('div', {
      document: this.document,
      class: 'tc-clock-widget'
    });
    parent.insertBefore(this.domNode, nextSibling);
    this.tick();
  }

  tick() {
    this.logger.log('Tick!');
    if (!document.contains(this.domNode)) {
      // Apparently the widget was removed from the DOM. Do some clean up.
      return this.stop();
    }
    this.start();
    this.domNode.innerHTML = this.dateString;
  }

  start() {
    if (!this.clockTicker) {
      this.logger.log('Starting clock');
      this.clockTicker = setInterval(this.tick.bind(this), 1000);
    }
  }

  stop() {
    this.logger.log('Stopping clock');
    clearInterval(this.clockTicker);
    this.clockTicker = null;
  }

  get dateString() {
    const format = 'DDth MMM YYYY at hh12:0mm:0ss am';
    return $tw.utils.formatDateString(new Date(), format);
  }
}

export { ClockWidget as clock };

Adding an extra space at the top causes Babel's output the preamble tiddler comment without any obscene indenting. Although it doesn't affect TiddlyWiki any, when reading the output it can be confusing when the tiddler information is rendered off the screen to the right.

Using links to navigate between tiddlers

10th October 2014 at 7:48pm

You can use links (normally displayed as blue text) to navigate from one tiddler to another. Clicking on a link to any tiddler will take you to that tiddler. If the tiddler is closed, it will be opened. The wonderful thing about TiddlyWiki is that it makes links to tiddlers as accessible as possible. There are links everywhere! Here are the key places where you can find links to tiddlers in TiddlyWiki:

  • You can create a link to a tiddler, whether it exists yet or not, in the body of any tiddler. See Linking in WikiText to see the various easy ways to create links between tiddlers.
  • Each tag pill in your tiddler (such as the Working with TiddlyWiki tag pill below the title of this tiddler) contains a link to that tag's tiddler, as well as lists of all the tiddlers that carry that tag. This lets you go to any of those tiddlers.
  • The InfoPanel of each tiddler gives you access to four tabs containing additional lists of related tiddlers:
    • The References tab lists all the tiddlers that link to the current tiddler.
    • The Tagging tab lists all the tiddlers that have been tagged with the current tiddler's title.
    • The List tab lists all the tiddlers (or potential tiddlers) mentioned in the list field of the current tiddler.
    • The Listed tab lists all the tiddlers that mention the current tiddler in their list fields.
  • The sidebar tabs contain numerous lists of links to tiddlers:
    • The Open tab lists all the tiddlers that are currently open, i.e. visible somewhere on the page.
    • The Recent tab lists the 100 most recently modified tiddlers, beginning with the most recently modified.
    • The More tab offers eight additional lists of tiddlers:
      • All lists all tiddlers in alphabetical order.
      • Tags lists all the tags. You can click on the pill for any tag to access a list of the tiddlers tagged with that tag.
      • Missing lists any tiddlers that don't yet exist, but have been linked to from other tiddlers. This is helpful for finding tiddlers you planned to create, but never got around to.
      • Drafts lists any tiddlers that are currently in draft mode. TiddlyWiki considers a tiddler's draft to be a separate tiddler for as long as you are editing it, so while you're editing a tiddler entitled Australia, there will be two tiddlers, Australia and Draft of 'Australia'. When you close the draft by saving your changes to it, those changes will be applied to the Australia tiddler. So treat the Drafts tab as a way of finding any unfinished drafts you started.
      • Orphans lists all the tiddlers that are not connected to any other tiddler by links, tags or lists. This is a helpful aid to editing your file - it shows you which tiddlers need to be integrated more carefully with the others.
      • Types lists any tiddlers with special content, such as images or audio.
      • System lists all of the SystemTiddlers.
      • Shadows lists all of the ShadowTiddlers.
  • Search results are a list of the tiddlers that contain the text you type in the search box.
  • Finally, you can create your own custom lists of tiddlers by various methods:
    • You can transclude a filter (see Transclusion in WikiText). For example, adding {{{ [tag[mountain]] }}} to a tiddler will insert a list of all tiddlers tagged with mountain.
    • You can use the ListWidget. This is more complicated than transcluding a filter, but in return it allows you more flexibility in designing and displaying the list exactly as you want it to appear.

Using Stamp

18th June 2016 at 10:01am

Insert snippets

You can insert preconfigured snippets of text to use stamp from toolbar. Click stamp ( ) and just select a snippet.

Create a snippet

  1. Click stamp ( )
  2. Create a snippet tiddler to use "Add your own" menu
  3. Type some text of snippet for the tiddler, and caption for the name as shown in menu
  4. Click the ok button

Tip: You can also create a snippet tiddler using the new tiddler button in the sidebar, and add tag $:/tags/TextEditor/Snippet

Using Stylesheets

21st February 2015 at 5:56pm

The first steps to changing the appearance of TiddlyWiki are to choose and apply one of the available themes, or to modify the colour palette.

In addition, custom CSS stylesheets can be defined by tagging a tiddler $:/tags/Stylesheet. Try creating a custom stylesheet now with the following content in order to change the page background colour to red:

html body.tc-body {
	background: red;
}

Overriding Theme Settings

Custom stylesheets are applied independently from theme stylesheets. Therefore, it is often necessary for the css rules in your custom stylesheet to be more specific than those of the theme you want to override. For example, html body.tc-body is more specific than body.tc-body.

Stylesheet Types

Usually it is best to use the type text/css for stylesheets. This treats them as plain stylesheets, and ensures that TiddlyWiki doesn't apply any wiki processing to them.

If you wish to use macros and transclusions in your stylesheets you should instead use the default WikiText type text/vnd.tiddlywiki. This allows full WikiText processing to be performed. Here is an example:

\rules only filteredtranscludeinline transcludeinline macrodef macrocallinline html

body.tc-body pre {
	<<box-shadow "inset 0 1px 0 #fff">>
}

The \rules pragma at the top of the tiddler restricts the WikiText to just allow macros and transclusion. This avoids mistakenly triggering unwanted WikiText processing.

A stylesheet tiddler is processed such that it is first wikified and then the text portion of the ouput is extracted to apply as the CSS. Any HTML tags you will use in your stylesheet are thus ignored. For example, HTML elements generated by the RevealWidget will not affect the output. As in the following example, you can wrap CSS rules in <pre> tags to display them as a codeblock without affecting processing, including handling the inner macro.

\rules only filteredtranscludeinline transcludeinline macrodef macrocallinline html

<pre>body.tc-body pre {
	<<box-shadow "inset 0 1px 0 #fff">>
}
</pre>

Stylesheet Macros

The TiddlyWiki core provides several global macros that are helpful in constructing stylesheets.

Using SVG

18th June 2016 at 9:58am

TiddlyWiki5 allows you to use SVG to display vector graphics in two ways:

  • Tiddlers with the type image/svg+xml are interpreted as SVG images, and displayed and transcluded as self-contained <img> elements with the SVG embedded as a data URI in the src attribute.
  • WikiText can also include inline SVG elements directly. See below for an example.

Embedding SVG tiddlers

You can embed an SVG image tiddler using the ordinary transclusion syntax:

{{Motovun Jack.jpg}}

You can also use Typed Blocks in WikiText to embed an inline SVG tiddler.

The implications of the image being rendered within an <img> element are that it is sandboxed; it can't use CSS styles from the parent document, for example. Neither can the image use WikiText features like transclusion.

Embedding SVG elements

The other way to use SVG is to embed the <svg> element directly. For example:

Note that inline SVG elements don't need an <?xml version="1.0"?> directive.

Including HTML or WikiText content in SVG images

You can include simple text strings in SVG images using the <text> element:

Hello, out there

HTML or WikiText content can be included within inline SVG images using the <foreignObject> element. For example:

Here is some text that requires a word wrap, and includes a link to a tiddler.

Transcluding SVG elements

When embedding SVG elements you can also use WikiText features like transclusion. For example, here is an SVG circle with the radius set to the value in the tiddler $:/SVGExampleRadius:

You can edit the value of the radius here:

Making curved text with SVG

This demo shows how to use SVG to render transcluded text along a path. Enter some text in the textbox below to try it out; view the source to see how it is done.

Using TiddlyWiki for GitHub project documentation

12th September 2014 at 3:15pm

TiddlyWiki5 can be used to produce documentation for GitHub projects. It lets you maintain a single set of documentation as a TiddlyWikiFolder containing separate tiddler files under source code control, and then use it to produce readme.md files for inclusion in project folders, or HTML files for storage in GitHub Pages. Both features are demonstrated by TiddlyWiki5 itself.

Generating readme.md files

When displaying the contents of a folder GitHub will look for a readme.md file and display it. Note that it will not display full HTML files in this way, just static MarkDown files (this is a security measure). Happily MarkDown permits a safe subset of HTML, and thus to generate a readme.md file that is suitable for GitHub it is just necessary for TiddlyWiki5 to generate the content of the <body> element of an HTML document, and give it the appropriate filename.

This is done with this command:

--rendertiddler ReadMe ./readme.md text/html

It saves the tiddler ReadMe to the file ./readme.md in the text/html format.

By default, tiddler links will be rendered as <a> links to a relative URI consisting of the title of the tiddler. This behaviour can be overridden by defining the macro tv-wikilink-template, as is done at the top of the tiddler ReadMe:

\define tv-wikilink-template() http://tiddlywiki.com/static/$uri_doubleencoded$.html

See the LinkWidget for more details.

In this example, tiddler links are rendered as links to the static rendering of tw5.com.

Using TiddlyWiki on Node.js

20th September 2014 at 2:50pm

TiddlyWiki5 can be used on the command line to perform an extensive set of operations based on TiddlyWikiFolders, TiddlerFiles and TiddlyWikiFiles.

For example, the following command loads the tiddlers from a TiddlyWiki HTML file and then saves one of them in static HTML:

tiddlywiki --verbose --load mywiki.html --rendertiddler ReadMe ./readme.html

Running tiddlywiki from the command line boots the TiddlyWiki kernel, loads the core plugins and establishes an empty wiki store. It then sequentially processes the command line arguments from left to right. The arguments are separated with spaces.

The first argument is the optional path to the TiddlyWikiFolder to be loaded. If not present, then the current directory is used.

The commands and their individual arguments follow, each command being identified by the prefix --.

tiddlywiki [<wikipath>] [--<command> [<arg>[,<arg>]]]

The available commands are:

Variables

21st February 2015 at 9:56pm

A variable is a snippet of text that can be accessed by name within a particular branch of the widget tree. The snippet is known as the variable's value.

A new variable is defined using a $set widget, and is then available to any of the children of that widget, including transcluded content. A $set widget can reuse an existing name, thus binding a different snippet to that name for the duration of the widget's children.

The $list widget also sets a particular variable (currentTiddler by default) to each listed title in turn.

For an overview of how to use variables, see Variables in WikiText.

Despite the term "variable", each snippet is a constant string. The apparent variability is actually the result of the presence of multiple variables with the same name in different parts of the widget tree.

Macros are a special form of variable whose value can contain placeholders that get filled in with parameters whenever the macro is used.

By themselves, the snippets are not parsed as WikiText. However, a variable reference will transclude a snippet into a context where WikiText parsing may be occurring. Within a snippet, the only markup detected is $name$ for a macro parameter transclusion and $(name)$ for a variable transclusion.

The dumpvariables macro lists all variables (including macros) that are available at that position in the widget tree.

TiddlyWiki's core has several variables built in.

Variables in WikiText

21st February 2015 at 10:18pm

See also the introduction to the concept of variables.

To transclude the value of a variable, use the macro call syntax with no parameters. You can also use a $macrocall widget.

A macro snippet can contain $(name)$ as a placeholder for which the value of the variable of that name will be substituted.

A variable's value can be used as a filter parameter, or as a widget attribute. The latter supports macro parameters.

Example: defining a variable

<$set name=animal value=zebra>
<<animal>>
</$set>

Example: defining a macro

The \define pragma below defines a macro called tags-of-current-tiddler. The macro returns the value of the tiddler's tags field, and can be accessed from anywhere else in the same tiddler (or in any tiddler that imports it).

\define tags-of-current-tiddler() {{!!tags}}
The tags are: <<tags-of-current-tiddler>>

Example: using a variable as a filter parameter

This example uses the backlinks operator to list all tiddlers that link to this one.

<<list-links filter:"[<currentTiddler>backlinks[]]">>

VarsWidget

26th April 2015 at 12:59pm

Introduction

The vars widget allows multiple variables to be set in one operation. In some situations it can result in simpler code than using the more flexible SetWidget.

Content and Attributes

The content of the <$vars> widget is the scope for the value assigned to the variable.

AttributeDescription
{attributes not starting with $}Each attribute name specifies a variable name. The attribute value is assigned to the variable

Examples

Consider a case where you need to set multiple variables.

Using the <$vars> widget, this situation may be handled in the following way:

\define helloworld() Hello world!

<$vars greeting="Hi" me={{!!title}} sentence=<<helloworld>>>
  <<greeting>>! I am <<me>> and I say: <<sentence>>
</$vars>

In contrast, here is the same example using the <$set> widget:

<$set name="greeting" value="Hi" />
<$set name="me" value={{!!title}} />
<$set name="sentence" value=<<helloworld>> />
  <<greeting>>! I am <<me>> and I say: <<sentence>>
</$set>
</$set>
</$set>

Remarks

It should be noted that this widget differs from the set widget in the following ways:

  • A fallback (also known as "emptyValue") cannot be specified
  • Filters cannot be used to produce a conditional variable assignement
  • Variable names must be literal strings

VerboseCommand

Triggers verbose output, useful for debugging

--verbose

version Macro

21st February 2015 at 9:41pm

The version macro returns the current version number of TiddlyWiki.

Parameters

(none)

Examples

version Macro (Examples)

21st February 2015 at 9:41pm

Version number: <<version>>

VersionCommand

Displays the version number of TiddlyWiki.

--version

Videos

19th September 2014 at 5:12pm

The following TiddlyWiki videos are available.

The aim is to curate a series of videos to guide people through getting up and running with TiddlyWiki. Contributions are welcome.

ViewWidget

23rd June 2016 at 4:28pm

Introduction

The view widget displays the contents of a tiddler field in a specified format.

Content and Attributes

The content of the <$view> widget is displayed if the field or property is missing or empty.

AttributeDescription
tiddlerThe title of the tiddler (defaults to the current tiddler)
fieldThe name of the field to view (defaults to "text")
indexThe name of the index to view
formatThe format for displaying the field (see below)
templateOptional template string used with certain formats such as dates
subtiddlerOptional SubTiddler title when the target tiddler is a plugin (see below)

Formats

The following formats can be specified in the format attribute:

FormatDescription
textPlain text
htmlencodedThe field is displayed with HTML encoding
urlencodedThe field is displayed with URL encoding
doubleurlencodedThe field is displayed with double URL encoding
htmlwikifiedThe field is wikified and the resulting HTML returned as plain text (ie HTML elements will appear in plain text)
plainwikifiedThe field is wikified and the text content of the resulting HTML returned as plain text (ie HTML elements will be removed)
htmlencodedplainwikifiedThe field is wikified and the text content of the resulting HTML returned as HTML encoded plain text (ie HTML elements will be removed)
dateThe field is interpreted as a UTC date and displayed according to the DateFormat specified in the template attribute
relativedateThe field is interpreted as a UTC date and displayed as the interval from the present instant
stripcommentsThe field is interpreted as JavaScript source code and any lines beginning \\# are stripped
jsencodedThe field is displayed as a JavaScript encoded string

SubTiddler Access

The view widget allows access to the individual tiddlers stored within a plugin.

The following example will view the core version of the tiddler $:/DefaultTiddlers even if it has been overridden:


<$view tiddler="$:/core" subtiddler="$:/DefaultTiddlers"/>

That renders as:

GettingStarted

vis.js Timeline by emkay, revived by kixam

27th May 2015 at 9:08am

An interactive timeline visualisation plugin based on Vis.js. A demo can be found here: http://kixam.github.io/TW5-visjsTimeline/.

vis.js Timeline is a TiddlyWiki plugin that allows you to link your wiki-topics (tiddlers) in order to create clickable timelines. This project is a direct continuation of emkay's plugin.

Wednesday

18th January 2015 at 1:17pm

This example tiddler is used to illustrate some of the Filter Operators.

What happened to the original TiddlyWiki?

4th September 2014 at 9:51am

The original Classic version of TiddlyWiki is still available at:

http://classic.tiddlywiki.com.

Note that the current version of TiddlyWiki is not fully backwards compatible with TiddlyWikiClassic. Content can be imported but will need massaging to adapt to the new WikiText format. A tw2parser plugin is under development that will allow faithful display of most content created for TiddlyWikiClassic:

http://tiddlywiki.com/plugins/tiddlywiki/tw2parser/

WidgetMessage: tm-add-field

8th September 2014 at 7:51pm

The tm-add-field message is handled by the FieldManglerWidget. It adds the specified field with a blank value if the field doesn't already exist.

NameDescription
paramName of field to add

The add field message is usually generated with the ButtonWidget, and is handled by the FieldManglerWidget.

WidgetMessage: tm-add-tag

8th September 2014 at 7:51pm

The tm-add-tag message is handled by the FieldManglerWidget. It adds the specified tag.

NameDescription
paramName of tag to add

The add tag message is usually generated with the ButtonWidget, and is handled by the FieldManglerWidget.

WidgetMessage: tm-auto-save-wiki

30th August 2014 at 12:51pm

The autosave wiki message causes the current saver module to perform a background save if it is required.

The autosave wiki message should be generated whenever changes are made to the store. For example, the navigator widget generates the autosave wiki message as part of its handling of the WidgetMessage: tm-save-tiddler, WidgetMessage: tm-delete-tiddler and WidgetMessage: tm-perform-import.

The autosave wiki message is handled by the TiddlyWiki core SyncMechanism which invokes the current SaverModule. Not all SaverModules can handle autosaving.

WidgetMessage: tm-browser-refresh

26th August 2014 at 12:05pm

The tm-browser-refresh message refreshes the page, causing the re-initialisation of any plugin tiddlers. It does not require any properties on the event object.

The refresh message is usually generated with the ButtonWidget and is handled by the core.

WidgetMessage: tm-cancel-tiddler

26th February 2014 at 7:39pm

The tm-cancel-tiddler message abandons the changes in a draft tiddler. It requires the following properties on the event object:

NameDescription
paramTitle of the tiddler that is being cancelled out of edit mode
tiddlerTitleFallback title that is used if param isn't specified (automatically set by the ButtonWidget)

The cancel tiddler message is usually generated with the ButtonWidget and is handled by the NavigatorWidget.

WidgetMessage: tm-clear-password

26th February 2014 at 8:49am

The tm-clear-password message clears the current password from the password vault, clearing the $:/isEncrypted tiddler. See EncryptionMechanism for details.

This message is typically generated with the ButtonWidget, and is handled by the core itself.

WidgetMessage: tm-close-all-tiddlers

26th February 2014 at 7:43pm

The close all tiddlers message empties the story list.

The close all tiddlers message is usually generated with the ButtonWidget and is handled by the NavigatorWidget.

WidgetMessage: tm-close-other-tiddlers

2nd March 2014 at 6:33pm

The tm-close-other-tiddlers message removes all but a specified tiddler from the story list. It requires the following properties on the event object:

NameDescription
paramTitle of the tiddler that is not to be closed
tiddlerTitleFallback title that is used if param isn't specified (automatically set by the ButtonWidget)

The close other tiddlers message is usually generated with the ButtonWidget and is handled by the NavigatorWidget.

WidgetMessage: tm-close-tiddler

26th February 2014 at 7:42pm

The tm-close-tiddler message removes a specified tiddler from the story list. It requires the following properties on the event object:

NameDescription
paramTitle of the tiddler that is to be closed
tiddlerTitleFallback title that is used if param isn't specified (automatically set by the ButtonWidget)

The close tiddler message is usually generated with the ButtonWidget and is handled by the NavigatorWidget.

WidgetMessage: tm-delete-tiddler

26th February 2014 at 9:04am

The tm-delete-tiddler message deletes the specified tiddler and removes it from the current story. If the tiddler is a draft then it also deletes the tiddler specified in the draft.of field. The delete tiddler message requires the following properties on the event object:

NameDescription
paramTitle of the tiddler that is to be deleted
tiddlerTitleFallback title that is used if param isn't specified (automatically set by the ButtonWidget)

The delete tiddler message is usually generated with the ButtonWidget and is handled by the NavigatorWidget.

WidgetMessage: tm-download-file

10th November 2014 at 1:37pm

The download file message causes the current saver module to prompt the user to download the result of parsing a specified template tiddler as a file. It requires the following properties on the event object:

NameDescription
paramTitle of a tiddler to use as a template for the new tiddler
paramObjectOptional hashmap of variable values to use for the rendering

The download file message is usually generated with the ButtonWidget.

The download file message is handled by the TiddlyWiki core SyncMechanism which invokes the current SaverModule.

WidgetMessage: tm-edit-bitmap-operation

24th April 2016 at 10:52pm

A tm-edit-bitmap-operation invokes one of the available operations on a surrounding bitmap editor. Therefore the message has to be dispatched within the editor in order for it to catch it. The following properties on the event object are required:

NameDescription
paramName of the operation to be executed, see below for a list of possible operations
paramObjectHashmap of additional parameters required by the operation top be executed

The tm-edit-bitmap-operation message is usually generated by a ButtonWidget or an ActionWidget and is handled by the surrounding bitmap editor.

Bitmap Operations

At this point the following bitmap operations have been implemented:

NameDescription
resize

Resizes the image to the specified width and height. Parameters include:

NameDescription
widthSpecifies the width the image is resized to
heightSpecifies the height the image is resized to
clear

Clears the contents of the image and fills it with a solid colour. Parameters include:

NameDescription
colourColour the image should be filled with, defaults to White

The colour field can take any normal CSS colour value, including the hexadecimal representation or the RGB format.

Example

An example can be seen in $:/core/ui/EditorToolbar/size-dropdown:

<$button>
<$action-sendmessage
	$message="tm-edit-bitmap-operation"
	$param="resize"
	width={{$config-title$/new-width}}
	height={{$config-title$/new-height}}
/>
...
Resize
</$button>

WidgetMessage: tm-edit-text-operation

25th April 2016 at 12:09am

A tm-edit-text-operation invokes one of the available operations on a surrounding text editor. Therefore the message has to be dispatched within the editor in order for it to catch it. The following properties on the event object are required:

NameDescription
paramName of the operation to be executed, see below for a list of possible operations
paramObjectHashmap of additional parameters required by the operation top be executed

The tm-edit-text-operation message is usually generated by a ButtonWidget or an ActionWidget and is handled by the surrounding text editor.

Text Operations

At this point the following text operations have been implemented:

NameDescription
excise

Excises the currently selected text into a new tiddler and replaces it with a link, a macro or a transclude of the new tiddler. Parameters include:

NameDescription
titleTitle of the new tiddler the selected content is excised to
typeType of the replacement to be inserted: Can be one of transclude, link or macro
macroIn case type=macro, specifies the name of the macro to be inserted. The title of the new tiddler is provided as the first parameter to the macro. Defaults to the translink macro
tagnewIf 'yes', will tag the new tiddler with the title of the tiddler currently being edited
replace-all

Replaces all contents of the editor with the provided text.

NameDescription
textText to be inserted
replace-selection

Replaces the current selection with the provided text.

NameDescription
textText to be inserted
prefix-lines

Prefixes the currently selected line(s) with the provided character. If a line is already prefixed by the provided prefix, the prefix is removed instead.

NameDescription
characterPrefix character
countNumber of characters that make up the prefix

Example Setting character="!" and count="3" would insert the prefix "!!!", which will resolve to a subheading when parsed as WikiText.

wrap-lines

Surrounds the selected lines with the provided prefix and suffix.

NameDescription
prefixString to be prefixed to the selected lines
suffixSuffix to be inserted after the selected lines
wrap-selection

Surrounds the current selection with the provided prefix and suffix.

NameDescription
prefixString to be prefixed to the selection
suffixSuffix to be inserted after the selection

Example

An example can be seen in $:/core/ui/EditorToolbar/bold:

<$action-sendmessage
	$message="tm-edit-text-operation"
	$param="wrap-selection"
	prefix="''"
	suffix="''"
/>

WidgetMessage: tm-edit-tiddler

26th February 2014 at 9:06am

The tm-edit-tiddler message replaces the specified tiddler in the current story with a draft version of itself. It requires the following properties on the event object:

NameDescription
paramTitle of the tiddler that is being switched to edit mode
tiddlerTitleFallback title that is used if param isn't specified (automatically set by the ButtonWidget)

The edit tiddler message is usually generated with the ButtonWidget or the ActionSendMessageWidget and is handled by the NavigatorWidget.

WidgetMessage: tm-fold-all-tiddlers

25th April 2016 at 12:27am

The tm-fold-all-tiddlers message folds all tiddlers in the current story list. It does so by setting the text of a state tiddler to either "show" or "hide", according to the fold state.

NameDescription
foldedStatePrefixPrefix for the state tiddler in which the fold state is stored.

The core uses a foldStatePrefix of '$:/state/folded/' to store the fold states for the default story view.

The state tiddlers title is computed as 'foldStatePrefix + TiddlerTitle'. If the foldStatePrefix is not set, it will overwrite the text of the tiddler(s) itself, resulting in data loss.

The tm-fold-all-tiddlers message is usually generated with the ButtonWidget and is handled by the surrounding NavigatorWidget.

WidgetMessage: tm-fold-other-tiddlers

25th April 2016 at 12:33am

The tm-fold-other-tiddlers message folds all tiddlers in the current story list, except the one specified in the param parameter. It does so by setting the text of a state tiddler to either "show" or "hide", according to the fold state.

NameDescription
paramTitle of the tiddler that should be ignored by the fold operation.
foldedStatePrefixPrefix for the state tiddler in which the fold state is stored.

The core uses a foldStatePrefix of '$:/state/folded/' to store the fold states for the default story view.

The state tiddlers title is computed as 'foldStatePrefix + TiddlerTitle'. If the foldStatePrefix is not set, it will overwrite the text of the tiddler(s) itself, resulting in data loss.

The tm-fold-other-tiddlers message is usually generated with the ButtonWidget and is handled by the surrounding NavigatorWidget.

WidgetMessage: tm-fold-tiddler

25th April 2016 at 12:31am

The tm-fold-tiddler message folds the tiddler specified in the param parameter. It does so by setting the text of a state tiddler to either "show" or "hide", according to the fold state.

NameDescription
paramTitle of the tiddler that should be folded. If the tiddler is already folded, it will be unfolded instead.
foldedStatePrefixPrefix for the state tiddler in which the fold state is stored. If no state prefix is provided, tm-fold-tiddler will do nothing.

The core uses a foldStatePrefix of '$:/state/folded/' to store the fold states for the default story view.

The tm-fold-tiddler message is usually generated with the ButtonWidget and is handled by the surrounding NavigatorWidget.

WidgetMessage: tm-full-screen

11th August 2014 at 12:36pm

The fullscreen message toggles the "fullscreen" mode of the browser, if it supports it.

The fullscreen message is handled by the TiddlyWiki core.

WidgetMessage: tm-home

19th August 2014 at 12:05pm

The tm-home message closes any open tiddlers and re-opens the default tiddlers set in $:/DefaultTiddlers. It also remove any permalink from the browser address bar. It does not require any properties on the event object.

The home message is usually generated with the ButtonWidget and is handled by the core.

WidgetMessage: tm-import-tiddlers

28th February 2015 at 2:36pm

The tm-import-tiddlers message inserts a list of tiddlers into the pending import tiddler $:/Import. It also applies any active upgrader modules to each tiddler as it arrives (see the UpgradeMechanism for more details).

NameDescription
paramJSON text of the array of tiddlers to be imported

The import tiddlers message is usually generated with the DropzoneWidget or the BrowseWidget, and is handled by the NavigatorWidget.

Configuration Variables

WidgetMessage: tm-load-plugin-from-library

25th April 2016 at 12:55am

The tm-load-plugin-from-library message load the specified tiddler or plugin from the specified plugin library.

NameDescription
titleTitle of the tiddler or plugin to be loaded into the current wiki
urlUrl specifying the plugin library from which the tiddler or plugin is to be loaded.

Example

The following snippet will install the CodeMirror plugin from the official plugin library:

<$button>
<$action-sendmessage $message="tm-load-plugin-from-library" title="$:/plugins/tiddlywiki/codemirror" url="http://tiddlywiki.com/library/v5.1.11/index.html"/>
Install CodeMirror
</$button>

Usually a plugin library has to be loaded (initialized) first before it can be used. If the plugin library specified by 'url' has not been initialized yet, it will be loaded and initialized.

The tm-load-plugin-from-library message is usually generated with the ButtonWidget and is handled by the core itself.

WidgetMessage: tm-load-plugin-library

25th April 2016 at 1:04am

The tm-load-plugin-library message loads the specified plugin library and imports information about the contained plugins in temporary tiddlers.

NameDescription
urlUrl specifying the plugin library to be loaded.
infoTitlePrefixPrefix to the temporary tiddlers being created, containing information about the plugins the plugin library offers. Defaults to $:/temp/RemoteAssetInfo/

Example

The following snippet will load the official plugin library:

<$button>
<$action-sendmessage $message="tm-load-plugin-library" infoTitlePrefix="$:/temp/RemoteAssetInfo/" url="http://tiddlywiki.com/library/v5.1.11/index.html"/>
Load official plugin library
</$button>

The tm-load-plugin-library message is usually generated with the ButtonWidget and is handled by the core itself.

WidgetMessage: tm-login

11th August 2014 at 12:33pm

The login message prompts the user for a username and password and attempts to login to the current serverside host. The tiddler $:/status/IsLoggedIn reflects the current login status with the values "yes" or "no", and $:/status/UserName reflects the current username.

The login message is handled by the TiddlyWiki core SyncMechanism which invokes the current SyncAdaptorModule (typically the tiddlywiki/tiddlywebadaptor plugin).

WidgetMessage: tm-logout

11th August 2014 at 12:33pm

The logout message attempts to log the user out of the current serverside host. The tiddler $:/status/IsLoggedIn reflects the current login status with the values "yes" or "no", and $:/status/UserName reflects the current username.

The logout message is handled by the TiddlyWiki core SyncMechanism which invokes the current SyncAdaptorModule (typically the tiddlywiki/tiddlywebadaptor plugin).

WidgetMessage: tm-modal

7th November 2014 at 2:28pm

The modal message displays a specified tiddler in a modal overlay that dims the main page. It requires the following properties on the event object:

NameDescription
paramTitle of the tiddler to be displayed
paramObjectHashmap of variables to be provided to the modal

The "currentTiddler" variable is set to the title of the modal tiddler, but can be overridden by specifying a different value in paramObject.

The modal message is usually generated with the ButtonWidget. The modal message is handled by the TiddlyWiki core.

Example

Here is an example of displaying a modal and passing parameters to it:

Your name: <$edit-text tiddler="$:/temp/yourName" tag="input" default="Your name"/>

Your message:
<$edit-text tiddler="$:/temp/yourMessage" default="Your message"/>

<$button>
<$action-sendmessage $message="tm-modal" $param="SampleModal" yourName={{$:/temp/yourName}} yourMessage={{$:/temp/yourMessage}}/>
Click me!
</$button>

That renders as:

Your name:

Your message:

WidgetMessage: tm-navigate

26th February 2014 at 8:54am

The tm-navigate message inserts the specified tiddler into the story and puts it at the top of the history stack. If the tiddler is not already present in the story then it will be positioned immediately after the tiddler specified in event.navigateFromTitle.

The navigate message requires the following properties on the event object:

NameDescription
navigateToTitle of the tiddler that is being navigated
navigateFromTitleTitle of the tiddler from which the navigation was initiated
navigateFromClientRectBounding rectangle in client page coordinates of the element initiating the navigation
navigateSuppressNavigationtrue causes the new tiddler to only be added to the story, and not the history stack. This suppresses the scrolling associated with navigating to a tiddler

The navigate message can be generated by the LinkWidget, the ActionNavigateWidget and the ButtonWidget, and is handled by the NavigatorWidget.

WidgetMessage: tm-new-tiddler

7th November 2014 at 1:21pm

The new tiddler message creates a new draft tiddler and adds it to the current story. It requires the following properties on the event object:

NameDescription
paramThe optional title of a tiddler to use as a template for the new tiddler
paramObjectOptional hashmap of additional tiddler fields
navigateFromTitleTitle of the tiddler from which the navigation to the new tiddler was initiated

The title for the draft tiddler is chosen according to these rules:

  • If a hashmap was used and a title field was specified, use that title
  • If a template tiddler was used, use the title of the template tiddler, making it unique with a numeric suffix
  • Otherwise, generate a new title based on the default new tiddler title with a numeric suffix to make it unique

The new tiddler message is usually generated with the ButtonWidget or ActionSendMessageWidget and is handled by the NavigatorWidget.

Examples

To make a button that creates new tiddlers tagged "task", create a tiddler called "TaskTemplate" with that tag, and then make your button like this:

<$button message="tm-new-tiddler" param="TaskTemplate">New Task</$button>

To create a new tiddler with given attributes rather than from a template:

<$button>
<$action-sendmessage $message="tm-new-tiddler" title="This is newly created tiddler" tags="OneTag [[Another Tag]]" text=<<now "Today is DDth, MMM YYYY">>/>
New Tiddler
</$button>

WidgetMessage: tm-notify

1st July 2016 at 3:02pm

The notify message briefly displays a specified tiddler as a small alert in the upper right corner of the page. It requires the following properties on the event object:

NameDescription
paramTitle of the tiddler to be displayed
paramObjectHashmap of variables to be provided to the notification

The notify message is handled by the TiddlyWiki core.

WidgetMessage: tm-open-window

24th April 2016 at 7:29pm

The tm-open-window message opens a tiddler in a new browser window. If no parameters are specified, the current tiddler is opened in a new window. Similiar to tm-modal any additional parameters passed via the paramObject are being provided as variables to the new window.

NameDescription
paramTitle of the tiddler to be opened in a new browser window, defaults to currentTiddler if empty
templateTemplate in which the tiddler will be rendered in
widthWidth of the new browser window
heightHeight of the new browser window
paramObjectHashmap of variables that will be provided to the window

The tm-open-window message is usually generated with the ButtonWidget and is handled by the core itself.

WidgetMessage: tm-perform-import

16th July 2014 at 9:43am

The perform import message copies tiddlers from a specified plugin into the main store. See the UpgradeMechanism for an overview of how it is used by the core.

NameDescription
paramTitle of the pending import tiddler. Defaults to $:/Import

To select which tiddlers are to be imported, fields with names formed from selection- plus the title of the tiddler are used. The value unchecked causes the tiddler to be skipped from the import.

The perform import message is usually generated with the ButtonWidget and is handled by the NavigatorWidget.

WidgetMessage: tm-permalink

23rd July 2014 at 11:37am

The tm-permalink message changes the browser address bar to form a permalink to a specified tiddler, defaulting to the current tiddler.

The permalink message supports the following properties on the event object:

NameDescription
paramTitle of the tiddler to be permalinked
tiddlerTitleThe current tiddler (used by default if the tiddler title isn't specified in the param)

The permalink message can be generated by the ButtonWidget, and is handled by the story mechanism.

WidgetMessage: tm-permaview

23rd July 2014 at 11:37am

The tm-permaview message changes the browser address bar to form a permaview that specifies all the open tiddlers in the main story river, and the tiddler to be navigated, defaulting to the current tiddler.

The permaview message supports the following properties on the event object:

NameDescription
paramTitle of the tiddler to be navigated within the permaview
tiddlerTitleThe current tiddler (used by default if the tiddler title isn't specified in the param)

The permaview message can be generated by the ButtonWidget, and is handled by the story mechanism.

WidgetMessage: tm-remove-field

8th September 2014 at 7:51pm

The tm-remove-field message is handled by the FieldManglerWidget. It removes the specified field.

NameDescription
paramName of field to remove

The remove field message is usually generated with the ButtonWidget, and is handled by the FieldManglerWidget.

WidgetMessage: tm-remove-tag

8th September 2014 at 7:51pm

The tm-remove-tag message is handled by the FieldManglerWidget. It removes the specified tag.

NameDescription
paramName of tag to remove

The remove tag message is usually generated with the ButtonWidget, and is handled by the FieldManglerWidget.

WidgetMessage: tm-save-tiddler

26th February 2014 at 9:07am

The tm-save-tiddler message is applied to draft tiddlers. It saves the draft over the tiddler identified in the draft.of field and then deletes the draft. The save tiddler message requires the following properties on the event object:

NameDescription
paramTitle of the tiddler that is being switched out of edit mode
tiddlerTitleFallback title that is used if param isn't specified (automatically set by the ButtonWidget)

The save tiddler message is usually generated with the ButtonWidget and is handled by the NavigatorWidget.

WidgetMessage: tm-save-wiki

10th November 2014 at 1:37pm

The save wiki message causes the current saver module to perform a full save operation. The save operation can involve user interaction. It requires the following properties on the event object:

NameDescription
paramTitle of a tiddler to use as a template for rendering the wiki (defaults to $:/core/save/all)
paramObjectOptional hashmap of variable values to use for the rendering

The save wiki message is usually generated by the ButtonWidget.

The save wiki message is handled by the TiddlyWiki core SyncMechanism which invokes the current SaverModule.

WidgetMessage: tm-scroll

25th April 2016 at 1:16am

The tm-scroll message causes the surrounding scrollable container to scroll to the specified DOM node into view. The tm-scroll is handled in various places in the core itself, but can also be handled by a ScrollableWidget.

NameDescription
targetTarget DOM node the scrollable container should scroll to.

Due to the nature of the parameter, the tm-scroll can only be generated within javascript code.

WidgetMessage: tm-server-refresh

11th August 2014 at 12:34pm

The server refresh message attempts to synchronise the latest changes to the current serverside host.

The server refresh message is handled by the TiddlyWiki core SyncMechanism which invokes the current SyncAdaptorModule (typically the tiddlywiki/tiddlywebadaptor plugin).

WidgetMessage: tm-set-password

26th February 2014 at 8:52am

The tm-set-password message prompts the user for a new password and stores it in the password vault, replacing any existing password. It also sets the $:/isEncrypted tiddler. See EncryptionMechanism for details.

This message is typically generated with the ButtonWidget, and is handled by the core itself.

WidgetMessage: tm-unfold-all-tiddlers

25th April 2016 at 12:34am

The tm-unfold-all-tiddlers message unfolds all tiddlers in the current story list. It does so by setting the text of a state tiddler to either "show" or "hide", according to the fold state.

NameDescription
foldedStatePrefixPrefix for the state tiddler in which the fold state is stored.

The core uses a foldStatePrefix of '$:/state/folded/' to store the fold states for the default story view.

The state tiddlers title is computed as 'foldStatePrefix + TiddlerTitle'. If the foldStatePrefix is not set, it will overwrite the text of the tiddler(s) itself, resulting in data loss.

The tm-unfold-all-tiddlers message is usually generated with the ButtonWidget and is handled by the surrounding NavigatorWidget.

Widgets

19th February 2015 at 6:27pm

TiddlyWiki's display is driven by an underlying collection of widgets. These are organised into a tree structure: each widget has a parent widget and zero or more child widgets.

TiddlyWiki generates this widget tree by parsing the WikiText of tiddlers. Each component of the WikiText syntax, including even the trivial case of ordinary text, generates a corresponding widget. The widget tree is an intermediate representation that is subsequently rendered into the actual display.

Widgets are analogous to elements in an HTML document. Indeed, HTML tags in WikiText generate dedicated element widgets.

Each class of widget contributes a specific ability to the overall functionality, such as the ability to display an image or a button, to call a macro or transclude text from elsewhere, or to mark a piece of text as a heading.

The more specialised widgets use a general-purpose widget syntax as their only possible WikiText representation.

The following classes of widget are built into the core:

Widgets in WikiText

19th June 2014 at 12:17pm

Widgets provide rich functionality within WikiText. They have the same syntax as HTML elements, but the tag name always starts with $. For example:

<$button message="tm-close-tiddler">Close Me!</$button>

Note that widgets inherit all the features of HTML in WikiText:

  • Widget attributes can be specified as:
    • Unquoted strings (that cannot contain spaces)
    • Strings quoted with single or double quotes
    • Strings quoted with triple-double quotes
    • Macro invocations (eg attr=<<myMacro>>)
    • Transclusions (eg, attr={{MyTiddler!!field}})
  • The content of a widget is parsed in inline mode unless the opening tag is followed by two linebreaks, which forces block mode
    • 'Inline mode' means that 'block mode' parse rules like headings, tables and lists are not recognised

See HTML in WikiText for more details.

The available widgets include:

Wiki

Groups of uniquely titled tiddlers are contained in WikiStore objects.

The WikiStore also manages the plugin modules used for widgets, and operations like serializing, deserializing, parsing and rendering tiddlers.

WikifyWidget

21st March 2016 at 2:49pm

Introduction

The wikify widget parses and renders a string of text and assigns the result to a specified variable. The new value of the variable is available to the content within the wikify widget.

Content and Attributes

The content of the <$wikify> widget is the scope for the value assigned to the variable.

AttributeDescription
nameThe name of the variable to assign
textThe text to parse and render
typeThe ContentType of the text (defaults to text/vnd.tiddlywiki)
modeThe parse mode: block (the default) or inline
outputKeyword indicating the desired output type, defaulting to text (see below)

The available output types are:

KeywordDescription
textReturn the plain text of the rendered output (ie HTML tags are omitted)
htmlReturn the rendered HTML of the output
parsetreeReturn a formatted JSON representation of the parse tree
widgettreeReturn a formatted JSON representation of the widget tree

WikiText

19th September 2014 at 8:12pm

WikiText is a concise, expressive way of typing a wide range of text formatting, hypertext and interactive features. It allows you to focus on writing without a complex user interface getting in the way. It is designed to be familiar for users of MarkDown, but with more of a focus on linking and the interactive features.

See Formatting text in TiddlyWiki for an introduction to WikiText.

The following elements of WikiText syntax are built into the core:

Windows HTA Hack

12th September 2014 at 3:10pm

Under Windows it is possible to convert TiddlyWiki into a true local application by renaming the HTML file to have the extension *.hta. The fsosaver module can then use the ActiveX FileSystemObject to save changes.

Note that one disadvantage of this approach is that the TiddlyWiki file is saved in UTF-16 format, making it up to twice as large as it would be with the usual UTF-8 encoding. However, opening and saving the file via another saving method will re-encode the file to UTF-8.

See Wikipedia for more details: http://en.wikipedia.org/wiki/HTML_Application

Working with the TiddlyWiki5 repository

20th September 2014 at 2:44pm

Introduction

If you want to contribute to TiddlyWiki's development, rather than installing TiddlyWiki in the usual way, you can work directly with the GitHub repository.

Mario Pietsch has created a short video introduction.

Setting Up

  1. Create an account on GitHub if you don't already have one
  2. Fork the TiddlyWiki5 GitHub repository from https://github.com/Jermolene/TiddlyWiki5
  3. Clone a local copy of your fork
  4. Open a command line terminal and change the current working directory to the root of the repo
  5. Type npm link (Windows) or sudo npm link (Mac/Linux) to tell npm to use this copy of the repo as the globally installed one

After this procedure you can work with TiddlyWiki5 via npm as though it were installed in the usual way with npm install -g tiddlywiki.

See also Scripts for TiddlyWiki on Node.js.

Working with the TiddlyWiki5 repository video

20th September 2014 at 2:40pm

Mario Pietsch has created a short video tutorial on working with the TiddlyWiki5 GitHub repository.

Working with TiddlyWiki

19th September 2014 at 8:11pm